Delphi - Action komponensek

1. rész

forráskód letöltése
Nagyobb Windows alkalmazásoknál már megszokhattuk, hogy az eszköztárak és a menü testre szabhatók, vagyis az egyes parancsokat reprezentáló ikonokat arra az eszköztárra helyezzük, amelyikre akarjuk, sőt saját eszköztárakat is létrehozhatunk. A Delphi 6-ban mi is készíthetünk viszonylag egyszerűen olyan alkalmazásokat, amelyekben ez a lehetőség megvan a felhasználó részére. Ehhez az Additional paletta néhány új komponensét kell csak felhasználnunk.
Összesen négy új komponenst találunk, amelyek a fent említett feladatot hivatottak megoldani. Ezek közül az első, és egyben a központi szerepet játszó komponens a TActionManager. Az első példában megnézzük, hogy hogyan tudunk csupán ezt az egy komponenst felhasználva egy testre szabható eszköztárat készíteni, néhány parancsikonnal együtt.
Először is tegyünk egy TActionManager komponenst a Form-ra. A komponenst az Additional palettán találjuk meg. Ezután helyezzünk el egy TImageList komponenst is a Form-on, ez a Win32 palettán található. Ezt a komponenst töltsük fel azokkal a képekkel, amiket az eszköztár ikonokon szeretnénk használni, majd a TActionManager komponens Images property-jében válasszuk ki.
Kattintsunk duplán a TActionManager komponensre, aminek hatására megjelenik egy ablak (Customize), ebben fogunk tovább dolgozni. Válasszuk ki a ToolBars lapot, és a New gombbal hozzunk létre egy új eszköztárat. Az eszköztár megjelenik a Form-on, természetesen még egyelőre üresen. Ezután menjünk át az Actions oldalra, ahol az eszköztáron megjelenítendő, illetve az összes a felhasználó által használt funkciót tudjuk megadni. A New Action gombbal, vagy az Insert billentyűvel hozzuk létre a parancsokat. A létrehozott parancsok tulajdonságait az Object Inspector-ban módosíthatjuk. A Caption property-ben adjuk meg a parancs nevét, az Image Index property-ben pedig a hozzá tartozó kép indexét. A Category property-ben megadhatunk egy kategória nevet, ami szerint a parancsok csoportosítva lesznek. Ha olyan kategóriát adunk meg, ami még nem létezik (elsőként mindenképpen ilyet adunk meg), akkor a Categories listában a neve megjelenik.
Ha már az összes parancsot létrehoztuk, akkor egyszerű „fogd és ejtsd” művelettel feltehetjük azokat az eszköztárra. Ha az összes parancsot fel szeretnénk tenni egy kategóriából, akkor a kategória nevét mozgassuk az eszköztárra. A parancsokhoz ne felejtsük el megírni a szükséges programkódot sem, amiket az OnExecute (parancs futtatása), OnHint (a parancshoz tartozó Hint felirat megjelenítésekor jön létre) és OnUpdate (parancslista frissítésekor jön létre) események felhasználásával tehetünk meg.
A parancsok AutoCheck és Checked property-jeivel a gombból egy kapcsolót készíthetünk. Ha az AutoCheck property értéke igaz, akkor a gomb kapcsolóként működik, az állapotát pedig a Checked property-ből olvashatjuk ki, vagy állíthatjuk be. Ha kapcsolóként szeretnénk használni több gombot úgy, hogy egyszerre csak egy lehet bekacsolva (mint például a TRadioButton komponensnél), akkor a GroupIndex property-ben adjunk meg egy lehetőleg 0-nál nagyobb számot, amivel meghatározhatjuk, hogy a gomb melyik csoportba tartozik. Az azonos csoportba tartozó gombok közül csak egy lehet bekapcsolva, kivéve akkor, ha a GroupIndex property értéke 0.

Action komponensek cikksorozat