Delphi – Smeštanje podešavanja programa u .ini fajl (II deo)

Delphi obezbeđuje TIniFile klasu sa metodama koje su dizajnirane za potrebe čuvanja i iščitavanja informacija specifičnih za određeni program i podešavanja, unutar INI fajlova. Klasa TIniFile deklarisana je unutar unit-a inifiles.pas. Pre nego što počnemo rad sa TIniFile kontrolom potrebno je da kreiramo instancu klase:


uses inifiles;

var
IniFile : TIniFile;
begin
IniFile := TIniFile.Create(‘mojprogram.ini’);

Ovaj programski kod kreira IniFile objekt i dodeljuje „mojprogram.ini“ jedinoj osobini klase – FileName osobini – koja se koristi za određivanje naziva INI fajla koji ćete koristiti. Ako deklarišete INI fajl na ovaj način, onda će se on smestiti u Windows folder. Bolje rešenje za čuvanje aplikacionih podataka je da INI fajl smestite u aplikacioni folder – zato kod metode Create odredite punu putanju i naziv INI fajla:


IniFile := TIniFile.Create(ChangeFileExt(
Application.ExeName,’.ini’));

Klasa TIniFile poseduje nekoliko metoda za „čitanje“. Metoda ReadString čita string vrednosti iz ključeva, metode ReadInteger, ReadFloat i slične, koriste se za čitanje brojčanih podataka iz ključeva. Sve metode za čitanje imaju podrazumevane vrednosti koje će se koristiti ukoliko ne postoje ulazni podaci. Na primer, metoda ReadString se deklariše kao:


function ReadString
(const Section, Ident, Default: String):
String; override;

Klasa TIniFile za svaku metodu „čitanja“ ima odgovarajuću metodu „upisa“. Drugim rečima, to su metode WriteString, WriteBool, WriteInteger, itd. Na primer, ukoliko želite da program "zapamti" naziv poslednjeg korisnika, i sve potrebne koordinate forme, oformićemo sekciju nazvanu "Poslednji", sa ključnim rečima "Korisnik" i "Datum"; i drugu sekciju zvanu "Polozaj" sa ključevima "Top", "Left", "Width" i "Height". Ovde treba reći da ključ nazvan "Korisnik" sadrži string vrednost, "Date" koja sadrži TDateTime vrednost, a svi ključevi u sekciji "Polozaj" sadrže intedžer vrednosti.

Događaj OnCreate glavne forme je perfektno mesto za smeštaj programskog koda potrebnog za pristup vrednostima u inicijalizacionom fajlu aplikacije:


procedure TForm1.FormCreate(Sender: TObject);
var
IniFile : TIniFile;
PosKorisnik : string;
PosDatum : TDateTime;
begin
IniFile := TIniFile.Create
(ChangeFileExt(Application.ExeName,’ini’));

//ako nema posl. korisnika – prazan string
PosKorisnik :=
IniFile.ReadString(‘Poslednji’,’Korisnik’,“);
//ukoliko nema korisnika sa datumom,
vraca se danasnji
PosDatum :=
IniFile.ReadDate(‘Poslednji’, ‘Datum’, Date);

//prikaz poruke
ShowMessage(‘Ovaj program je prethodno koristio ‘
+ PosKorisnik + ‘ dana ‘
+ DateToStr(PosDatum));

Form1.Top :=
IniFile.ReadInteger
(‘Polozaj,’Top’, Form1.Top);
Form1.Left :=
IniFile.ReadInteger
(‘Polozaj’,’Left’, Form1.Left);
Form1.Width :=
IniFile.ReadInteger
(‘Polozaj’,’Width’, Form1.Width);
Form1.Height :=
IniFile.ReadInteger
(‘Polozaj’,’Height’, Form1.Height);

IniFile.Free;
end;

Pratite Krstaricu na www.krstarica.com