
A mellékelt példaprogram megnyitása előtt a DBRadioButtonReg.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens hasonlóan működik a DBRadioGroup komponenshez, de itt a RadioButton-okat külön-külön tudjuk kezelni. A RadioButton-ok jellemzője, hogy az azonos csoportba tartozó komponensek közül csak egy lehet bekapcsolva. A csoportot a normál RadioButton komponensnél a Parent property határozta meg, vagyis az azonos szülő komponenssel rendelkező komponensek egy csoportba tartoztak. Az új komponensnél a csoportot elsősorban a DataSource és a DataField property-k határozzák meg, de igazából ennek nincs jelentősége, mivel azt, hogy a komponens be van-e kapcsolva vagy sem, a komponenshez tartozó mező értéke határozza meg. Így ha két komponens ugyanahhoz a mezőhöz van kapcsolva, és a komponenshez tartozó érték is megegyezik, akkor akár mindkét DBRadioButton lehet bekapcsolt állapotban.
Az nyilvánvaló, hogy a DBRadioButton komponens nem logikai érték megadására szolgál, hiszen arra ott a DBCheckBox. Az új komponenst sztring, illetve valós vagy egész szám típusú mezőkhöz kapcsolhatjuk, és külön-külön megadhatjuk minden komponensnél, hogy milyen értéket írjon a mezőbe.
A komponenst a TRadioButton osztályból származtatjuk. Szükség lesz egy FieldDataLink osztályra, amivel az adatbázis kapcsolatot valósítjuk meg. A mező értékét a Value sztring típusú property-ben adhatjuk meg, szám esetén úgy, hogy az konvertálható legyen a megfelelő típusra.
Az új osztályban felülírjuk a SetChecked eljárást. Ha a Checked property értéke igazra változik, akkor beírjuk a mezőbe a Value property értékét. Ez ténylegesen az UpdateData eljárásban történik meg, ahol ellenőrizzük a mező típusát, és ennek megfelelően írjuk ki a Value property értékét.
Amikor egy másik rekordra pozícionálunk, akkor el kell dönteni minden egyes DBRadioButton-nál, hogy az adott mező a komponenshez tartozó értéket tartalmazza-e. Ez a DataChange eljárásban történik meg, ami automatikusan lefut, amikor az adatok megváltoznak (pl. egy másik rekordra pozícionálunk, vagy módosítjuk a mezőben tárolt adatot). Ebben az eljárásban összehasonlítjuk a mezőben tárolt adatot a Value property értékével, és meghívjuk a SetChecked eljárást a megfelelő paraméterrel. Ha a két adat megegyezik, akkor a paraméter igaz, ellenkező esetben pedig hamis. Az FChanging globális változót azért állítjuk igazra, hogy a SetChecked igaz paraméter esetén ne írja ki a Value property értékét a mezőbe, mivel ilyenkor az adatkészlet mindig Edit állapotba kerülne.