HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Egy tetszőleges komponens tulajdonságainak lekérdezése futási időben


Példaprogram letöltése

4863 bájt

Ebben a példában egy olyan komponenst készítünk, melynek segítségével futási időben lekérdezhetjük bármely komponens tulajdonságait. A komponens csak azokat a tulajdonságokat és értékeket adja vissza, amelyek eltérnek az adott osztályra jellemző alapértékektől. Ha például egy ablak tulajdonságait kérdezzük le, akkor abba beletartoznak gyermek objektumai is.

A mellékelt példaprogram megnyitása előtt a ComponentQuery.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A TComponentQuery komponenst a Component tulajdonságán keresztül rendelhetjük hozzá ahhoz a komponenshez, amelynek tulajdonságait le szeretnénk kérdezni.
Ha ez megtörtént, akkor a GetProperties metódussal lekérdezhetjük a tulajdonságokat.
function GetProperties: String;
Az eredményt String-ként kapjuk vissza.
A komponenst a TComponent osztályból származtatjuk.
Az adatok lekérdezéséhez a TMemoryStream (Stream) és a TStringStream (StrStream) osztályokat használjuk fel.
Egy komponenst és az általa tartalmazott komponenseket az alábbi módon másolhatjuk egy TMemoryStream-be.
Stream.WriteComponent(FComponent);
Miután bemásoltuk a komponenst a Stream objektumba, az tartalmazni fogja annak bináris formájú leírását. Hogy ezt olvasható szöveggé változtassuk, át kell konvertálnunk az adatokat binárisból szöveges formátumúvá. Erre szolgál az ObjectBinaryToText eljárás.
ObjectBinaryToText(Stream,StrStream);
Az StrStream objektum már a tulajdonságlistát fogja tartalmazni, olvasható, szöveges formában. Nincs más hátra, minthogy az objektum tartalmát visszaadjuk a függvény visszatérési értékeként.
Result:=StrStream.DataString;
A TStringStream osztály tartalmához a DataString metóduson keresztül férhetünk hozzá.
Ha a TComponentQuery komponens Component tulajdonságában hozzárendelünk egy objektumot a komponensünkhöz, majd azt töröljük, akkor jön az „Access violation” ablak. Ezért figyelnünk kell arra, hogy ha a hozzárendelt komponens törlődik, akkor többé ne hivatkozzunk rá.
Ehhez felül kell írnunk a Notification metódust.

Cikksorozat

#IDKategóriaCikk címeSorozat
1099DelphiDBChart komponens felhasználása1. rész
1113DelphiTDBChart komponens2. rész
1122DelphiTDBChart komponens3. rész
1132DelphiTDBChart komponens4. rész


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