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;