HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Action komponensek


2. rész

Példaprogram letöltése

4215 bájt

Eddig a TActionManager komponenst jobbára a Customize ablakon keresztül konfiguráltuk, ezért mostani cikkünkben megnézzük, hogy milyen property-k, metódusok és események tartoznak ehhez a komponenshez.

Az ActionBars property-ben találjuk a komponenshez kapcsolt komponensek listáját. Itt adhatunk hozzá a komponenshez TActionToolBar és TActionMainMenuBar komponenseket, és itt jelennek meg azok is, amiket a Customize ablakban vettünk fel.
Hiába lennének testre szabhatók az eszköztárak, ha ezt a program minden indításakor meg kellene tennünk. Könnyen belátható, hogy ebben az esetben a komponens használhatatlan lenne. Szerencsére a TActionManager komponens képes elmenteni egy fájlba a beállításokat. A fájl nevét a FileName property-ben kell megadnunk. Ebbe a fájlba tárolja az eszköztárak elrendezését, és ebből fogja betölteni is. A ResetUsageData eljárással ez a fájl törölhető, aminek következtében az eszköztárak az alapértelmezés szerinti állapotba kerülnek.
A SaveToStream eljárással adatfolyamként is elmenthetjük a beállításokat. Ennek párja a LoadFromStream eljárás, amivel az adatfolyamba elmentett beállításokat tölthetjük vissza.
A TActionList komponens már a Delphi régebbi verzióiban is megtalálható volt (Standard paletta). A LinkedActionLists property-n keresztül ilyen komponenseket kapcsolhatunk a TActionManager komponenshez. Ha ezt megtesszük, akkor az Actions listában az ezekben felsorolt funkciók is látszani fognak, csak a legördülő listából ki kell választani a TActionList komponens nevét, vagy az „(All Actions)” elemet.
A TActionManager komponens képes a ritkábban használt parancsok elrejtésére. Ehhez egy táblázatot használ, amiben megadhatjuk, hogy az egyes parancsokat mikor kell „ritkán használt”-nak nyilvánítani, vagyis ideiglenesen elrejteni. Ezt a táblázatot a PrioritySchedule property-ben szerkeszthetjük. A táblázatnak két oszlopa van: az első oszlopban egy ún. UsageCount érték van, ami azt adja meg, hogy egy parancs hányszor van használva egy munkafolyamaton belül. Egy munkafolyamat a program indításától a befejezéséig tart. A második oszlopban lévő érték azt határozza meg, hogy hány munkafolyamatnak kell eltelnie ahhoz, hogy a nem használt parancs el legyen rejtve. Ez így elmondva bonyolultnak tűnhet, ezért nézzünk rá egy példát. Ha a táblázatban az UsageCount értéke 4, és mellette 12 áll, akkor a következő a helyzet: ha egy parancsot eddig összesen 4 munkafolyamatban használtunk, akkor ahhoz, hogy „ritkán használt” legyen, legalább 12 olyan munkafolyamatnak kell következnie, amiben nem használjuk. Ha közben mégis használtuk, akkor a számláló újra indul, sőt az UsageCount értéke is eggyel nő, így ezután az annak megfelelő érték lesz figyelembe véve. Természetesen nagyobb UsageCount-hoz nagyobb érték tartozik, tehát minél többször használunk egy parancsot, annál többször kell „nem használnunk”, hogy ritkán használt legyen. Ha egy parancsot többször használunk, mint a táblázatban lévő maximális UsageCount érték, akkor arra a maximálisan megadott érték fog vonatkozni. A parancsok használatára vonatkozó adatok tárolása a FileName property-ben megadott fájlban történik, így a ResetUsageData eljárás meghívása után ezek az adatok is törlődnek.
Az ActionCount property-ből megtudhatjuk, hogy összesen hány parancsot (Actions) tart nyilván a komponens.
A parancsokhoz képet is rendelhetünk, ehhez viszont az Images property-ben meg kell adnunk egy TImageList komponenst, ami a képeket tartalmazza.
A State property-vel a TActionManager-ben található parancsok állapotát szabályozhatjuk. Értékei a következők lehetnek:
  • asNormal: a parancsok (Actions) végrehajtódnak, amikor a felhasználó kiválasztja őket.
  • asSuspended: a parancsok nem válaszolnak, vagyis nem hajtják végre a feladatukat.
  • asSuspendedEnabled: ua. mint az előző, de az összes parancs Enabled property-jének értéke igazra változik.
Ha egy eszköztárat az alapértelmezett állapotba szeretnénk állítani, akkor használjuk a ResetActionBar eljárást. Ez a paraméterként megadott sorszámú eszköztárat a DefaultActionBars property-ben meghatározott állapotba hozza. Ez a property hasonló, mint az ActionBars property, de az eszköztárak alapbeállításait tartalmazza.
Alapesetben a parancsok a felhasználói beavatkozásra hajtódnak végre, de az ExecuteAction függvénnyel a programból is generálható egy OnExecute esemény a paraméterként megadott funkciónál.
A parancsokhoz természetesen billentyűkombinációt is rendelhetünk, amelyet a komponens automatikusan lekezel. Ha azonban egy billentyűkombinációról el szeretnénk dönteni, hogy ahhoz van-e parancs rendelve, akkor az IsShortCut függvénnyel lekérdezhetjük azt. A függvény végignézi a parancslistákat, és ha talál olyan parancsot, amelyhez a megadott billentyűkombináció tartozik, akkor végrehajtja azt, és igaz értékkel tér vissza. Ellenkező esetben a visszatérési érték hamis.
Az UpdateAction eljárással generálhatunk a paraméterként megadott funkciónak (Action) egy OnUpdate eseményt. Alapesetben ezt nem kell használnunk, mivel a megfelelő időben ez egyébként is megtörténik.
A TActionManager komponensnek is vannak eseményei. Az OnChange esemény akkor jön létre, amikor valamilyen változás történik a beállításokban. Amikor a felhasználó kiválaszt egy parancsot, akkor először a TActionManager OnExecute eseménye fut le. Ha a Handled property értékét igazra állítjuk, akkor a feldolgozás megszakad, vagyis a további események nem következnek be. Ha nem állítjuk át a Handled paraméter értékét, akkor a következő esemény, ami létrejön az OnActionExecute (TApplication osztály). Itt szintén van egy Handled property. Ha ennek értéke továbbra is hamis, akkor következik be a parancs OnExecute eseménye.
Amikor az alkalmazás éppen „üresjáratban” van, vagyis nem csinál semmit, akkor jön létre az OnUpdate esemény. Itt is találhatunk egy Handled paramétert, ami ugyanúgy működik, mint az OnExecute eseménynél. Ha az értéke hamis marad, akkor jön létre az OnActionUpdate esemény. Ha itt sem állítjuk be a Handled paraméter értékét igazra, akkor következnek a parancsok OnUpdate eseményei.

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