Delphi – Zapis (Record)

U Delphi-ju, zapis (record) je klasa za sebe koja nema procedura niti funkcija. Po analogiji, jedan objekat je zapis koji može da sadrži i podatke i procedure, a na osnovu ovoga možemo da zaključimo da postoji veza između objekata i zapisa. Zapis nam omogućava da u jednu grupu podataka stavimo više podataka različitog tipa (Pascal tipovi). U sledećem primeru videćemo dva podatka smeštena u jedan zapis (jedan tipa string i jedan celobrojnog tipa):


TYPE
TMojZapis = record
MojString : String;
MojBroj : Integer;
END;

Sve zapise navodimo u okviru sekcije „TYPE“ i moramo ih započeti navođenjem naziva zapisa, potom navodimo znak jednakosti i na kraju ide ključna reč „record“. Nakon navođenja poslednjeg podatka, zatvaramo definiciju zapisa sa „end“ i tačka-zarezom. Kada završimo sa deklaracijom tipa zapisa, moramo deklarisati i varijablu koja je datog tipa (zapisa), jer deklaracijom zapisa samo obaveštavamo kompajler o novom tipu.


TYPE
TMojZapis = record
MojString : String;
MojBroj : Integer;
END;
VAR
NekiZapis : TMojZapis;

U ovom slučaju rezerviše se prostor od 258 bajtova (1 bajt=8 bita), prvih 256 bajtova za string i prestala 2 za celobrojnu vrednost.

Sada ćemo da vidimo kako se pozivaju, polja određenog zapisa:


NekiZapis.MojString := ‘Dodela vrednosti polju zapisa’ ;

Ova programska linija dodeljuje određeni string polju „MojString“, zapisa „NekiZapis“. U sledećoj liniji ćemo vrednost polja zapisa dodeliti „Label1“ kontroli:


Label1.Caption := NekiZapis.MojString ;

Da bi radili sa zapisima u kraćem obliku, koristićemo instrukciju „With“:


WITH NekiZapis DO
BEGIN
MojString := ‘Mike Antica’ ;
MojBroj := 48 ;
END;

Zapisi se najčešće koriste slično bazama podataka, za grupisanje više podataka istog tipa. Npr. ako imamo imenik, koji čuva podatke o imenima i brojevima telefona, možemo iskoristiti zapise u nizu da bi obrađivali te podatke.


TYPE
TLice = record
Ime:String;
Tel:String;
END;
TNizLica = array[1..10] of TLice;
VAR
Lice:TLice;
BEGIN
Lice[1].Ime:=’Petrovic Petar’;
Lice[1].Tel:=’789-265′;
Lice[2].Ime:=’Jovanovic Jovan’;
Lice[2].Tel:=’154-985′;


Prvi deo instrukcije „Lice[1]“ odnosi se na prvi zapis, kome dodajom polja „Ime“ možete pristupiti prvom polju prvog zapisa.

Pratite Krstaricu na www.krstarica.com