HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Összetett (ADT) adatmezők használata


Példaprogram letöltése

4843 bájt

A Delphi-ben lehetőségünk van arra, hogy összetett adatmezőket használjunk. Ezeket a mezőket ADT mezőknek nevezzük. Segítségükkel egy adatforrás mezőszerkezetét rekordszerűen jeleníthetjük meg. Ebben a példában megnézzük, hogy miként hozhatjuk létre, és miként használhatjuk az ADT mezőket.

ADT, az Abstract Data Type rövidítése.
A mellékelt példában egy ClientDataSet komponens segítségével hozunk létre egy saját adattáblát.
Két fő mezőt tárolunk el benne:
  • Person
  • Comment
A Person mezőn belül létrehozunk további 3 mezőt:
  • Name
  • Address
  • Age
A mezők létrehozását futási időben tesszük meg, a Form OnCreate eseményében.
Egy ADT mező létrehozásánál 3 paramétert kell megadnunk.
FieldDefs.Add('Person',ftADT,3);
A mező nevét, az ftADT típust és egy számot, ami azt mondja meg, hogy az ADT mezőn belül hány újabb mező található.
Az adatforrás FieldDefs property-jében ezután fel kell sorolnunk azokat a mezőket (a jelen példa szerint 3 db), amelyek az ADT mezőn belüli mezők lesznek.
FieldDefs.Add('Name',ftString,30);
FieldDefs.Add('Address',ftString,50);
FieldDefs.Add('Age',ftInteger);
Az ADT-ben megjelenítendő mezőknek közvetlenül az ADT mező definíciója után kell szerepelniük a FieldDefs tömbben.
A további felsorolt mezők már az ADT mezővel egy szinten helyezkednek el.
Egy ADT mező tartalmazhat további ADT mezőket, és így tovább.
A ClientDataSet által megjelenítendő adatszerkezetet a CreateDataSet metódus meghívásával hozhatjuk létre, majd nyithatjuk meg.
CreateDataSet;
Az ADT mezők megjelenítése kétféle lehet. Ha a ClientDataSet ObjectView property-jében igaz értéket adunk meg, akkor a DBGrid a mezőket hierarchikusan jeleníti meg. Ha a property értékét hamisra állítjuk, akkor az egyes mezők egymás mellett jelennek meg, és ilyenkor semmi nem utal a hierarchikus szerkezetükre.
Az ADT mező egyes elemeire úgy hivatkozhatunk, mintha rekordokkal dolgoznánk.
DBText1.DataField:='Person.Name';
ADT_mező_neve.Mező_név
Ha a ClientdataSet1.ObjectView értéke igaz, akkor a program futtatásakor a DBGrid-ben kinyithatjuk, vagy bezárhatjuk az ADT-n belüli mezőket.
A ClientDataSet segítségével lehetőségünk van az adatokat egy állományba elmenteni, vagy onnan visszatölteni. Erre a SaveToFile és a LoadFromFile metódusok szolgálnak.
Ha azt akarjuk, hogy a DBGrid a Person mező tartalmát összecsukott állapotban is megjelenítse, akkor az OnDrawDataCell eseményt kell használnunk. Az eseményben leprogramozzuk, hogy az összecsukott Person mező a Name, Address és Age mezők tartalmát vesszővel elválasztva jelenítse meg.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 713. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |