HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Egy Form-on található adatbázissal kapcsolatos komponensek adatainak gyűjtése egy listába


Példaprogram letöltése

9093 bájt

A mellékelt példában egy olyan segédprogramot készítünk, amely egy tetszőleges DFM fájlból kiolvassa az összes, valamilyen módon adatbázishoz kapcsolt komponensek adatait. Ezeket a komponenseket nem típus szerint azonosítja, így nem csak a Delphi-ben megtalálható komponenseket gyűjti ki. Az elkészült listát akár ki is nyomtathatjuk.

A Button1 OnClick eseményében beolvassuk a kiválasztott fájlt. Ha a DFM fájl első bájtjának értéke $FF, akkor ez azt jelenti, hogy bináris formában van tárolva. Ekkor az ObjectResourceToText függvénnyel átalakítjuk szöveggé. A DFM forrás a Memo1 komponensbe kerül.
A DFm forrásban hierarchikusan következnek egymás után az objektumok adatai. Ez azt jelenti, hogy az egyes objektumok egymásba vannak ágyazva. Minden objektum deklarációja az object kulcsszóval kezdődik, majd utána áll az objektum neve, és kettősponttal elválasztva a típusa. Ez utóbbi nem minden objektumnál található meg, de ezzel most nem foglalkozunk.
Az object kulcsszót tartalmazó sor után következnek a komponens property-jei és azok értékei. A hierarchikus elrendezés miatt előfordulhat olyan eset, hogy a property-k között egy újabb komponens következik, majd azután az előző komponens property-jei folytatódnak.
Az adatbázissal kapcsolatos komponenseket nem típus szerint azonosítjuk, hanem bizonyos property-k megléte szerint. A vizuális komponenseknek általában van egy Datasource és egy DataField nevű property-jük. A DFM állomány fájlsoronként dolgozzuk fel, így ha találunk egy ilyen nevű property-t, akkor az biztos, hogy valamelyik előző sorban lévő object után álló komponenshez tartozik. Éppen ezért, ha egy object kulcsszót találunk, akkor az utána álló nevet és típust „megjegyezzük”. A hierarchikus elrendezés miatt viszont nem elég az utolsó komponens adatait megjegyezni, hanem az előzőekét is el kell tárolni. Ez a következőképpen fog működni: létrehozunk egy listát, amelyben a komponensek neveit és típusát tároljuk. Amikor egy object sort találunk, akkor az az után álló nevet felvesszük a listába, az utolsó helyre. Ha a sorok beolvasása során egy megfelelő property-t találunk (pl. Datasource), akkor biztosak lehetünk benne, hogy az a lista végén található komponenshez tartozik. Ebben az esetben a komponenst felvesszük a ListView1-be. Egy komponensnél több property-t is keresünk, ezért előfordulhat, hogy már megtalálható a listában, ezért mielőtt felvennénk a ListView1-be ezt ellenőrizzük.
Folytatva az előző gondolatsort, amikor egy end-et tartalmazó sort találunk, az az aktuális objektum végét jelzi. Ebben az esetben a komponens lista végéről az utoljára felvett komponenst.
Összesen négyféle property-t keresünk, ezek a Datasource, DataField, TableName és DataSet.

Cikksorozat

#IDKategóriaCikk címeSorozat
1018DelphiVonalkód készítő komponens1. rész
1028DelphiVonalkód nyomtatása a QuickReport-al2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 126. 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 |