Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Struktura Class-e

[es] :: Office :: Excel :: Struktura Class-e

Strane: 1 2

[ Pregleda: 4408 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Blue82
dipl. ecc.

Član broj: 165981
Poruke: 838
*.dynamic.sbb.rs.



+322 Profil

icon Re: Struktura Class-e28.10.2017. u 13:01 - pre 78 meseci
Dobro de, nemojte se pocupati :)
Znaci ako sam razumeo ne moram da brinem oko unistavanja veze sa objektom (ja cu to tako da nazove a vi zovite kako hocete), i nece se desiti posle unosa 1000 menica da u memoriji imam nekih 1000 cuvanja podataka za tih 1000 menica koji mi nisu ni potrebni. Tacnije gore prikazan nacin rada je sasvim ok?

Ono sto me buni je kako on dovraga zna da meni vise taj objekat nece biti potreban? Npr ako sam samo napisao
Code:
Menica("AB1234564")

u klasi je promenjiva brojMenice dobila vrednost AB1234564.

Sta ako ja sad u programu radim nesto drugo i posle x linija koda pozovem (GET) Menica.brojMenice. Kako ce racunar da zna da li moju vezu Menica("AB1234564") moze u nekom trenutku da obrise jer meni vise nece trebati ili ne moze?

Primera radi ja pozovem:
Code:
Menica("AB1234561").Add ThisWorkbook.ActiveSheet
Menica("AB1234562").Add ThisWorkbook.ActiveSheet
Menica("AB1234563").Add ThisWorkbook.ActiveSheet
Menica("AB1234564").Add ThisWorkbook.ActiveSheet
Menica("AB1234565").Add ThisWorkbook.ActiveSheet
Menica("AB1234566").Add ThisWorkbook.ActiveSheet
Menica("AB1234567").Add ThisWorkbook.ActiveSheet


Po prirodi programa ni jedna od ovih veza posle izvrsenja mi vise nije potrebna. Ali ko moze da garantuje da ja u jednom trenutku necu pozvati neku rutinu za Menica("AB1234565").Delete koju sam npr kreirao u toj klasi.Na osnovu cega VBA odlucuje kada neku vezu moze da obrise a kada ne (osim pri gasenju programa)?

Ustvari, mozda mi je kliknulo. Kad se izvrsi ova celina Menica("AB1234567").Add ThisWorkbook.ActiveSheet, funkcija je zavrsena i posto sam novi objekat kreirao u funkciji Manica koja je sada zavrsena a ne negde izvan nje, VBA zakljucuje da tu vezu moze da obrise?
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Struktura Class-e28.10.2017. u 13:25 - pre 78 meseci
Razmišljaj o klasi kao o apstraktnom tipu podatka (ADT - abstract data types).
Znaš kako se koriste stringovi, celi brojevi, stringovi. Kada kreiraš objekat neke klase to je kao da si rekao a="Neki string". Dokle god postoji varijabla a, postoji i string. Dakle, objekti su VAARIJABLE tipa klasa i objekat postoji dokle god postoji varijabla.

U primeru koji je peca napisao, ako napišeš

Menica("AB1234561").Add ThisWorkbook.ActiveSheet

Funkcija Menica, kreira objekat tipa CMenica i vrati referencu na taj objekat. Ti onda pozoveš metodu Add objekta tipa CMenica koji ti je vratila funkcija Menica i posle te linije objekat NE POSTOJI.

Da si rekao

mm=Menica("AB1234561")
mm.Add

Tada bi u varijabli mm postojala referenca na objekat, i taj objekat ne bi bio uništen dokle god postoji varijabla mm.
 
Odgovor na temu

[es] :: Office :: Excel :: Struktura Class-e

Strane: 1 2

[ Pregleda: 4408 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.