Delphi - TDBRadioGroup

DataControls paletta 9. rész

forráskód letöltése
Az előző cikkünkben bemutatott TDBCeckBox komponensben a felhasználó két vagy három lehetőség közül választhat. Ha több, de véges számú lehetőséget szeretnénk biztosítani úgy, hogy mindig csak egy lehetőséget lehessen választani, akkor egy másik komponensre, a TDBRadioGroup-ra van szükségünk. TDBRadioGroup a TCustomRadioGroup-ból származik, így annak tulajdonságai itt is használhatók. Használata nagyban hasonlít a TRadioGroup komponenshez, hiszen közös ősből származnak.

Kapcsoljuk hozzá az adatbázishoz a DataSource-t a megfelelő mezőhöz a DataField Property-n keresztül.

Ezt a beállított mezőt a Field poperty-n keresztül érhetjük el. A példaprogram OnCreate eseményében ezen a property-n keresztül töröljük egy mező értékét.

Ha azt akarjuk, hogy ez a mező ne legyen szerkeszthető a TDBCheckBox által, akkor a ReadOnly property-t állítsuk True értékűre.

Hogy a mező értéke megváltoztatható-e, vagy nem, a CanModify logikai típusú metódus mutatja meg.

Hogy milyen elemek jelenjenek meg a komponensben, azt az Items property-ben adhatjuk meg. Az Object Inspector-ban megjelenő ablakban soroljuk fel a rádiógombok feliratait egymás alá. Így minden sor egy elemnek felel meg.

Alapértelmezésben egy oszlopos a megjelenítés. Ha több oszlopra van szükségünk, akkor az oszlopok számát a Columns poperty-ben adhatjuk meg.

Ha a felhasználó kiválaszt egy elemet, akkor alapértelmezésben az elem Items property-ben beállított szövege kerül az adatbázisba. Ha ez hosszabb, mint a mezőben beállított szélesség, akkor csak annyi kerül be, amennyi belefér. Ha hosszú szöveget kell eltárolnunk, akkor annak nagy lesz a helyigénye is. Ezt a problémát kezelhetjük a Values property-n keresztül. Itt az Items-hez hasonlóan minden elemhez hozzárendelhetünk egy másik szöveget is (Pl. azonosítónak használt számokat). Ekkor már ez a szöveg kerül tárolásra az adatbázisban, nem pedig az Items-ben megadott (megjelenni természetesen az utóbbi fog). Így helyet takaríthatunk meg. Erre láthatunk példát a példaprogramban is.

Ha használjuk a Values property-t, akkor az ott tárolt értékeket futási időben a Value property-n keresztül érhetjük el.

Hasznos lehet az adatbázishoz műveletek (Action) definiálása, ill. felhasználása, ha az action-t kódból szeretnénk végrehajtani, ill. update műveletet kell kezdeményeznünk. Erre használhatjuk az ExecuteAction, valamint az UpdateAction metódusokat. Logikai értékkel térnek vissza. Ha Action változójukban megadott TBasicAction típusú műveletet sikerült kezelni, akkor értékük True, különben False.

A példaprogramban a felhasználónak történelmi eseményeket kell párosítania megfelelő évszámokkal. Ehhez két TDBRadioGroup komponenst használtunk. Az egyikben az események szövegesen jelennek meg, a másikban évszámokat találunk. Feladat a megfelelő párok kijelölése. Az események szövege a komponens Items property-ébe kerültek, de mint évszámokat tároljuk a táblában a Values property segítségével. Így az adatbázisban csak a kérdés és a válasz évszámát fogjuk tárolni.

DataControls paletta cikksorozat