|
|
Varázsló készítését egyszerűsítő komponens
|
|
Példaprogram letöltése
6268 bájt
|
Bizonyos feladatok megoldására jól használhatók az ún. varázslók, melyek a tapasztalatlan felhasználót is végigvezetik a bonyolultabbnak számító műveleteken. Ezeknek a varázslóknak a legfőbb jellemzője, hogy az egyes lépésekhez szükséges adatokat egy-egy lapon adhatjuk meg, melyekből egyszerre csak egy látszik. A lapok között egy „Előző” és egy „Következő” feliratú gombbal lépkedhetünk, az utolsó oldalnál pedig a „Befejezés” gombbal fejezhetjük be a műveletet. Ebben a cikkben egy olyan komponenst készítünk, amely megvalósítja a varázsló lapjait, valamint egy-egy gombot is hozzárendelhetünk az előre, illetve vissza történő lapozáshoz. A komponens eseményeinek felhasználásával bonyolultabb feladatok is megoldhatók.

A mellékelt példaprogram megnyitása előtt a WizardPages.pas-ban lévő komponenst telepítenie kell a Delphi alá.
Elsősorban egy olyan komponensre lesz szükség, amely a Panel komponenshez hasonlóan képes más komponenseket fogadni, viszont tetszőleges számú lapot kell kezelnie. A TabbedNotebook és PageControl komponensek ugyan több lapot képesek kezelni, viszont megjelenésük miatt alkalmatlanok a feladat megoldásához.
Az új komponenst a TNotebook osztályból fogjuk származtatni, ami viszont minden tekintetben megfelel az elvárásoknak. Nincs saját kerete, és több oldalt képes kezelni.
Felveszünk két TButton típusú property-t, melyekben megadható bármilyen nyomógomb komponens, amely a TButton osztályból származik (pl.Button, BitBtn). A ButtonPrevious property-ben az „Előző” gombot, a ButtonNext property-ben pedig a „Következő” gombot kell megadni. Amikor ezeknek a property-knek értéket adunk, akkor a megadott gomb komponens OnClick eseményének értékét elmentjük, és a saját eseményünket rendeljük hozzá. Az eredeti esemény sem veszik el, mert azt is meg fogjuk hívni.
Négy új eseményt is megadunk, ezek a következők:
- BeforeChange: ez az esemény a „lapozás” előtt jön létre. A Page paraméterben megkapjuk, hogy melyik oldal jelenik meg. Ezt szükség szerint akár módosíthatjuk is, ahogy az a mellékelt példaprogramban is látszik. A Direction paraméterből megtudhatjuk, hogy melyik irányból történt a lapozás, vagyis az „Előző”, vagy a „Következő” gombra kattintott-e a felhasználó.
- OnFinish: ez az esemény akkor következik be, amikor az utolsó lap az aktív, de a felhasználó mégis a „Következő” gombra kattint. Ezzel az eseménnyel valósíthatjuk meg a „Befejezés” gombot, ahogyan a mellékelt példaprogramban is tettük.
- OnPrevButtonClick: az „Előző” gombra kattintás eseménye.
- OnNextButtonClick: a „Következő” gombra kattintás eseménye.
Lapozni programból a PrevPage és a NextPage eljárásokkal tudunk előre, illetve hátra. A FirstPage illetve LastPage logikai függvényekkel ellenőrizhetjük, hogy az első lapon, vagy az utolsón állunk-e.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2002 évkönyv 61. 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!
|