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