Tehnika Krstarice > Programiranje > Delphi - Zapis (Record)

Delphi - Zapis (Record)

28.12.2000.

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.

Preporučite ovaj članak

Članak još uvek nije ocenjen.