HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Mező név automatikus megjelenítése egy Label-ben


Példaprogram letöltése

6580 bájt

Amikor egy Form-on egy adatbázis mezőinek tartalmát jelenítjük meg, mondjuk egy DBEdit komponensben, akkor szinte biztos, hogy egy Label komponenst is elhelyezünk a mező mellé, hogy a felhasználó láthassa, az adott mezőben milyen adatot kell megadnia. Ebben a Label komponensben meg kell adnunk a megjelenítendő szöveget, ami sok mező esetén kényelmetlen lehet. Most egy olyan Label komponenst készítünk, amelyet hozzárendelhetünk egy adatbázis mezőhöz, így a komponens az adatbázis mező objektumának DisplayLabel property-jében megadott feliratot fogja megjeleníteni.

A mellékelt példaprogram megnyitása előtt a DBDisplayLabelReg.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
Az új komponenst a TCustomLabel osztályból származtatjuk. Lényeges változás az eredeti Label komponenshez képest, hogy néhány új property-n keresztül lehetővé tesszük, hogy a komponenst egy adatbázis mezőhöz lehessen kapcsolni, valamint a Caption property értékét nem tároljuk el a .dfm fájlba.
A kapcsolódást kétféleképpen is megoldhatjuk. Az egyik a szokásos DataSource és DataField property-k használata, de a Field property-n keresztül megadhatjuk a mező TField osztályból származtatott objektumát is. A Caption property ennek az objektumnak a DisplayLabel property-jében tárolt értéket veszi fel. Ha ezt nem aduk meg, akkor a mező neve fog megjelenni.
Ha a Field property-ben megadtuk a mező objektumát, akkor a DataSource és DataField property-k törlődnek, és ez fordítva is igaz, tehát ha a DataSource property-ben adunk meg értéket, akkor a Field property értéke törlődik.
A Caption property értékének beállítása a Refresh eljárásban történik, amit szerkesztési időben a komponens menüjéből is meghívhatunk. Ebben az eljárásban megszerezzük a mező objektumát a Field property-ből, vagy ha nem itt lett megadva, akkor a DataSource porperty-n keresztül a FindField függvény segítéségével. Ha megvan az objektum, akkor kiolvassuk annak DisplayLabel property-jét, ha nincs, akkor pedig a Caption property értéke a komponens neve lesz (Name property).
A DisplayLabel property-ben tehát meg kell adni előzőleg a mező feliratát, ami elvileg ugyanannyi ideig tart, mintha egy Label komponensben adtuk volna meg ugyanazt. De ez mégsem így van, mivel a DisplayLabel property-ben megadott feliratot felhasználhatja például a DBGrid komponens is. Így elég csak egy helyen megadni a feliratot.
Van még egy új property, amiről nem beszéltünk, ez pedig az AddColon. Ez egy logikai típusú property, amely igaz érték esetén a feliratot kiegészíti egy kettősponttal.

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