HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

CheckList komponens


Példaprogram letöltése

7696 bájt

A CheckListBox egy olyan speciális komponens, amely ötvözi a ListBox és a CheckBox komponenst úgy, hogy a lista elemei egy-egy CheckBox komponensnek felelnek meg. Ezt a komponenst akkor érdemes használni, ha több összetartozó kapcsolót szeretnénk megjeleníteni, használni. A komponens megjelenítését bizonyos mértékig befolyásolhatjuk, de ha ez nem elég, akkor az ebben a példában elkészített komponens megoldhatja ezt a „hiányosságot”.

A mellékelt példaprogram megnyitása előtt a CheckList.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
Az új komponenst a TCustomListBox osztályból származtatjuk. Ebből is következik, hogy a komponens nem a CheckListBox továbbfejlesztése, hanem egy teljesen új komponens.
Míg a ListBox komponensnél (és a CheckListBox komponensnél is) az Items property egy TStrings típus, ami egyszerű sztringeket tud tárolni, az új komponensben ez a property a TCollection osztályból van származtatva. Ebben a property-ben kapcsoló csoportokat hozhatunk létre. Az egyes csoportokban maximum 32 darab kapcsolót tárolhatunk, amelyeket az Options TStringsList típusú property-ben adhatunk meg, egyszerű felsorolással. A 32-es maximális szám abból adódik, hogy az egyes kapcsolók tulajdonságait két 32 bites (dword) változóban tároljuk:
  • FChecked: ennek a változónak az egyes bitjei azt adják meg, hogy a bithez tartozó kapcsoló be van-e kapcsolva, vagy sem. A bitek beállítását egyszerűen megoldhatjuk az Enabled tömb property-n keresztül.
  • FEnabled: ez a változó hasonló az FChecked változóhoz azzal a különbséggel, hogy azt az információt tartalmazza, hogy a kapcsolók engedélyezettek-e, vagy sem. Itt is minden kapcsolóhoz egy-egy bit tartozik, amelyeket a Checked tömb property-n keresztül állíthatunk be.
Az egyes kapcsoló csoportokhoz képet is rendelhetünk az ImageIndex property-n keresztül. Ehhez a TCheckList osztályban létrehozunk egy TImageList típusú property-t, amelyben megadható a képeket tartalmazó komponens.
Mivel a ListBox a felülírt Items property tartalmát jeleníti meg, ezért ebben eltároljuk a kapcsoló csoportok neveit, és a hozzájuk tartozó kapcsolók indexeit, valamint az ezekhez tartozó objektumokat. Ezt a listát a RebuildList eljárás fogja felépíteni az Items property tartalmának megfelelően. Természetesen nem ezt a listát jelenítjük meg, hanem felülírjuk a DrawItem eljárást, és az index-nek megfelelő csoport nevet, vagy kapcsolót fogjuk megrajzolni. Csak azok a csoportok lesznek megjelenítve, amelyek legalább egy kapcsolót tartalmaznak, vagyis az Options property-jük nem üres.
A kapcsoló állapotát nem csak az egérrel, hanem a szóköz, vagy enter billentyűkkel is módosíthatjuk.

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