HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Action komponensek


3. rész

Példaprogram letöltése

10462 bájt

Szó volt róla, hogy a TActionmanager komponensben létrehozhatunk funkciókat, parancsokat, melyekhez ikonokat rendelhetünk, és tetszés szerint elhelyezhetjük őket egy-egy eszköztáron vagy menüben. Mielőtt azonban nekiállnánk ilyen parancsokat létrehozni, és a hozzájuk kapcsolódó kódot megírni, tudnunk kell, hogy a Delphi-ben már vannak előre elkészített parancsok, amik remekül működnek anélkül, hogy nekünk egy programsort is kellene írnunk.

A Customize ablakban az Actions oldalon tudunk új parancsokat létrehozni. Ehhez a legördülő lista melletti ikonsorban az első ikonra kattintsunk, illetve a mellette lévő kis fekete nyílra. A legördülő menüből válasszuk a New Standard Action menüpontot (Ctrl + Insert). A megjelenő Standard Action Classes ablakban vannak felsorolva kategorizálva a létrehozott parancsokhoz tartozó osztályok. Ezekről a parancsokról tudni kell, hogy nem kell nekünk megírni azt a programkódot, ami a működésükhöz szükséges, hanem minden funkciót elvégeznek automatikusan. Minden parancsnál meg van határozva, hogy mely osztályokból származó komponenseknél használható. Ezekről a kategóriák ismertetésénél lesz bővebben szó. Az előre definiált parancsok felhasználásával könnyedén készíthetünk például olyan WordPad tudású szövegszerkesztő alkalmazást, amelyben mindössze 1-2 sort kell csak nekünk begépelnünk.
A TAction osztály az alap osztály, ez ugyanaz, mintha a New Action menüponttal hoztuk volna létre (Insert gomb).
A többi osztály már külön kategóriába van sorolva, ezek a kategóriák a következők:
Edit
Ebben minden olyan parancsot megtalálunk, ami a Szerkesztés menüben általában benne van. A parancsok a TEditAction osztályból származnak. A parancsok minden olyan komponensnél használhatók, amelyek a TCustomEdit osztályból származnak. Ez azt jelenti, hogy minden, a Form-on található komponensre érvényes a hatásuk, amely ebből az osztályból származik. Természetesen egyszerre csak egyre, méghozzá arra, amelyik a fókuszt birtokolja.
Format
Az ebben a kategóriában lévő parancsok a TRichEditAction osztályból származnak, és mint az osztály neve is mutatja, ezek a TCustomRichEdit osztályból származó komponensekre érvényes parancsok, melyekkel a szöveg formázását módosíthatjuk.
Help
A THelpAction osztályból származó parancsok a szokásos parancsokat tartalmazzák, amelyek egy Súgó menüben meg szoktak jelenni. Ez természetesen csak akkor működik, ha van .hlp fájl kapcsolva az alkalmazásunkhoz (Application.HelpFile).
Window
Az MDI alkalmazásoknál megtalálható Ablak menü szokásos parancsai, melyek a TWindowAction osztályból származnak.
File
A TFileAction osztályból származó parancsok, melyek a fájl menü szokásos parancsait tartalmazzák (fájl megnyitás, mentés, futtatás, nyomtató beállítás, kilépés). Ezek az osztályok már nem teljesen önállóan végzik el a feladatukat, használatukhoz mindenképpen szükség van némi programozásra, ezért szükséges az osztályok részletes bemutatása. A property-k és az események a TFileOpen, TFileSave és TFilePrintSetup osztályoknál megegyeznek, de a Dialog property-ben mindig az adott parancshoz tartozó dialógus ablak objektumát érhetjük el.
TFileOpen
Egy fájl megnyitás dialógus ablakot nyit meg. A Dialog property-n keresztül elérhetjük ennek a dialógus ablaknak az objektumát (TOpenDialog), amiben a szükséges beállításokat elvégezhetjük (pl. Filter, Title, Options, stb.). Az osztályban kapunk három eseményt is: az OnAccept akkor következik be, amikor a felhasználó kiválasztotta a fájlt megnyitásra, az OnCancel pedig akkor, amikor a mégsem gombot választotta. A harmadik esemény az OnBeforeExecute, ami közvetlenül a dialógus ablak megnyitása előtt fut le. Ebben beállíthatjuk a dialógus ablak tulajdonságait a Dialog property-n keresztül).
TFileSaveAs
Egy „Mentés másként” típusú dialógus ablakot jelenít meg. A Dialog property-n keresztül egy TSaveDialog objektum érhető el.
TFilePrintSetup
Egy Nyomtató beállítása dialógus ablakot jelenít meg. A Dialog property-ben egy TPrinterSetupDialog objektum érhető el.
TFileRun
A parancs használható egy adott fájl, vagy egy felhasználó által kiválasztott fájl futtatására, vagy megnyitására. Ha a Browse property értéke igaz, akkor egy fájl megnyitása dialógus ablakot jelenít meg, amiből a felhasználó kiválaszthatja a futtatni kívánt fájlt. A BrowseDlg property-n keresztül ennek a dialógus ablaknak az objektumát érhetjük el (TOpenDialog). A Directory és FileName property-kben adhatjuk meg a futtatandó fájl elérési útvonalát és nevét. Ezt mindenképpen meg kell adni, ha a Browse property értéke hamis, egyébként nem kötelező. A Parameters property-ben az esetlegesen megadni kívánt paramétereket adhatjuk meg. A HInst property-ben kapjuk vissza a hibakódot, ha a futtatás nem sikerült. Ha sikeres volt a futtatás, akkor a property értéke 0. Az Operation property-ben megadhatjuk a fájl megnyitásának módját. Ez egy sztring típusú property, aminek értékei a fájltípushoz rendelt műveletek, melyek a Registry adatbázisban vannak eltárolva. Ha olyan műveletet használunk, amelyet a kiválasztott fájltípussal nem lehet elvégezni, akkor a parancs hibaértékkel tér vissza. A következő értékek lehetnek:
  • edit: a fájl megnyitása szerkesztésre;
  • explore: a megadott fájlt (mappát) megnyitja Windows Intézővel;
  • open: ez az alapértelmezett művelete, vagyis ha az Operation property értéke egy üres sztring, akkor az open műveletet fogja végrehajtani. Ez a művelet a futtatható fájlokat futtatja, azokat a fájlokat, melyekhez egy alkalmazás van rendelve, megnyitja az alkalmazással, valamint a mappákat megnyitja;
  • print: a kiválasztott fájlt kinyomtatja, ha az nem egy bináris fájl (pl. EXE);
  • properties: megnyitja a fájlhoz vagy mappához tartozó tulajdonság ablakot.
A ShowCmd property-ben megadhatjuk, hogy a futtatott alkalmazás hogyan jelenjen meg.
Search
A szövegszerkesztőknél megszokott Keresés, Csere és az ezekkel kapcsolatos parancsok találhatók ebben a kategóriában, melyek a TSearchAction osztályból származnak. A parancsok a TustomEdit osztályból származó komponenseknél használhatók.
TSearchFind
Egy Keresés dialógus ablakot jelenít meg. A Dialog property-n keresztül egy TFindDialog objektumot érhetünk el. Az események megegyeznek a TFileOpen osztályban ismertetett eseményekkel.
TSearchFindNext
Egy TSearchFind parancshoz kapcsolható osztály, ami a „Következő keresése” funkciót valósítja meg. A TSearchFind osztályt, amihez kapcsolni akarjuk, a SearchFind property-ben kell megadni.
TSearchFindFirst
A TSearchFind parancstól mindössze annyiban különbözik, hogy a keresett szót a szöveg elejéről kezdi el keresni, függetlenül a kurzor helyzetétől.
TSearchReplace
A Dialog property-ben egy TReplaceDialog objektumot érhetünk el. Az események megegyeznek a TFileOpen osztálynál ismertetettekkel.
Tab
A TCustomTabControl osztályból származó komponenseknél használható, a varázslókban megszokott „Következő”, illetve „Előző” parancsok. A TabControl property-ben meg kell adni azt a komponenst, amit kezelni szeretnénk a parancsokkal. A Wrap property-ben egy logikai értéket kell megadnunk. Ha a property értéke igaz, akkor az utolsó lap után az elsőre válthatunk a „Következő” gombbal, illetve az elsőről az utolsóra az „Előző” gombbal. A SkipHiddenTabs property-vel azt állíthatjuk be, hogy azokra a lapokra is lapozhatunk, amelyek Visible property-jének értéke hamis, vagy ezek kimaradnak. A property igaz értéke esetén ez utóbbi eset következik be. Mindkét parancshoz tartozik három esemény is, ezek a következők:
AfterTabChange
A lapozás után következik be;
BeforeTabChange
A lapozás előtt következik be;
OnValidateTab
Ez az esemény használható arra, hogy az „Előző” és „Következő” parancsokat engedélyezzük, illetve letiltsuk a TabControl komponens aktuális oldalán elvégzett módosítások alapján. Például egy varázslóban addig nem engedjük továbblépni a felhasználót, amíg egy adatbeviteli mezőt ki nem töltött.
List
A list control komponensekhez (TListBox, TListView) kapcsolódó parancsok, melyekkel ezek a komponensek manipulálhatók. A parancsok kettő kivételével mind a TListControlAction osztályból származnak. Mindegyiknél a ListControl property-ben kell kiválasztani azt a komponenst, amelyikhez kapcsolni szeretnénk.
Dialog
Ebben a kategóriában különböző dialógus ablakokhoz kapcsolódó osztályokat találunk, melyek a TDialogAction osztályból származnak. A property-k és az események megegyeznek a TFileOpen osztálynál ismertetettekkel, a különbség annyi, hogy mindegyik osztályhoz a neki megfelelő típusú objektum érhető el a Dialog property-n keresztül.
Internet
Az Internettel kapcsolatos műveletekhez használható parancsok. Összesen három osztály van, ezek a következők:
TBrowseURL
Egy megadott WEB cím megnyitása az alapértelmezett böngészőprogrammal. A címet az URL property-ben kell megadni.
TDownLoadURL
Az URL property-ben megadott állomány letöltése a FileName property-ben megadott állományba. A letöltés közben az OnDownloadProgress eseményben értesülhetünk a letöltés állapotáról.
TSendEmail
Megnyitja az alapértelmezett levelező programot, és létrehoz egy új üzenetet.
Dataset
Ebben a kategóriában ugyanazokat a parancsokat találhatjuk meg, amiket a TDBNavigator komponens is megvalósít, vagyis az adatbázisban történő navigálást, és az adatok szerkesztésével kapcsolatos műveleteket (Edit, Append, Post, stb.). A DataSet property-ben egy TDataSet osztályból származó komponenst (pl. TTable, TQuery, stb.) tudunk megadni, amire a parancsok vonatkoznak.
Tools
Ez a kategória mindössze egy osztályt tartalmaz, az viszont nagyon fontos. A TCustomizeActionBars osztály ActionManager property-jében egy TActionManager komponenst kell megadni. A parancs segítségével ugyanaz a Customize dialógus ablak jelenik meg, amit szerkesztési időben használtunk, viszont ennek segítségével már a felhasználó is elrendezheti az eszköztárakat, parancsgombokat, menüket, stb.

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