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

class methode i objekti

[es] :: Pascal / Delphi / Kylix :: class methode i objekti

[ Pregleda: 1032 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 245
*.adsl.net.t-com.hr.



+2 Profil

icon class methode i objekti15.09.2016. u 09:12 - pre 48 meseci
Koristim klasu u kojoj su varijable i metode definirane kao class, a unutar class metode kreiram objekt. Od klase u programu ne kreiram objekt, cijelo vrijeme ju koristim kao takvu jer se koristi iz (manje-više) svih formi koje ima program - parametri programa.

Pitanje:
1. kako napraviti free objekta (fParam) i da li je uopće potrebno jer mi podaci koje čuva klasa trebaju tako dugo dok traje program.
2. da li je taj način dohvata parametra ok ili bi moglo biti problema zbog toga?

Code:

   ...
   class var fParam: MyClass2;
   class procedure Load();
   ...

   class procedure MyClass1.Load()
   begin
      fParam := MyClass2.Create();
   end;
   ...
 
Odgovor na temu

_deran_

Član broj: 69493
Poruke: 233
91.232.237.*



+1 Profil

icon Re: class methode i objekti15.09.2016. u 10:52 - pre 48 meseci
Zašto ne kreiraš jedan objekat na početku i ubiješ ga na kraju, pri gašenju programa? Sve vreme ga koristiš iz raznih formi direktno, bez class metoda...
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 245
*.adsl.net.t-com.hr.



+2 Profil

icon Re: class methode i objekti16.09.2016. u 08:25 - pre 48 meseci
Sa class metodama mi izgleda elegantnije. U Initialize proceduri programa pozovem class metodu Load i nakon toga bilo gdje iz programa, a bez da ga uključim u uses, koristim parametre. Na kraju, u OnClose main forme napravim Save i stvar riješena.
Definiciju i kod klase sam stavio u zasepan file koji uključujem u forme gdje mi treba.

U osnovnoj klasi, u class metodama kreiram nekoliko objekata drugih klasa. Tako da mi je poziv iz programa npr:

Code:

   ...
   tClass1.Load('FileName', 'Alias');
   ...
   NekiParametar := tClass1.ParamFile['Alias'].Section['Naziv sekcije'].Item['Naziv itema'].Value;
   NekiDrugi := tClass1.Value['Alias file', 'Section', 'Item name', Default];
   ..


u class metodi "Load" kreiram objekte koje koristim i učitavam podatke.

tClass1 = klasa o kojoj razgovaramo
ParamFile = class metoda clase tClass1. Vraća objekt klase tParamFile
Section = metoda klase tParamFile vraća objekt tItem.

Value vraća podatak tipa variant.

Do sada nisam radio s class metodama (nešto malo), pa me zanimaju mogući problemi u programu, zauzeće resura u odnosu na kreiranje objekta i brzina izvršavanja. Opčenito: vaše mišljenje o ovom pristupu.

E, da, još nešto: da li postoji način overloadanja propety-a?. Što bi hio postići: mogučnost da preko različitog tipa podatka varijable "Default" vraćam različiti tip podatka iz klase. Znam način sa metodama, ali onda moram pisati i koristiti različite metode za čitanje i upis podatke.
Želio bih postići:
Code:

   class property Value[ParamFile, Section, ItemName: string, Default: string]: string read getItem1 write setItem1;
   class property Value[ParamFile, Section, ItemName: string, Default: integer]: integer read getItem2 write setItem2;





 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2638



+69 Profil

icon Re: class methode i objekti16.09.2016. u 10:50 - pre 48 meseci
> Do sada nisam radio s class metodama (nešto malo), pa me zanimaju mogući problemi u programu, zauzeće resura u odnosu
> na kreiranje objekta i brzina izvršavanja. Opčenito: vaše mišljenje o ovom pristupu.

Class metode su ti manje više kao obične procedure koje ne pripadaju objektu, dakle brzina i memorija će ti biti iste kako god da okreneš.

BTW ti ovo pravis neki globalni settings objekat? Razmisli o upotrebi recorda (i oni imaju metode), meni to nekako deluje kao jednostavnije resenje, a i lakse (automatski se dealocira).

> E, da, još nešto: da li postoji način overloadanja propety-a?. Što bi hio postići: mogučnost da preko različitog tipa
> podatka varijable "Default" vraćam različiti tip podatka iz klase. Znam način sa metodama, ali onda moram pisati i koristiti različite metode za čitanje i upis

To ces svakako morati, jedino da koristis Variant

Probaj ovako:
property Value[ParamFile, Section, ItemName, Default: string]: integer read getItem1 write setItem1;
property Value[ParamFile, Section, ItemName: string; Default: integer]: integer read getItem2 write setItem2;

 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: class methode i objekti

[ Pregleda: 1032 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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