Hozzáadása módszerek és események a komponens

Alkotó 1. példában PrinterList komponens különbözik a prototípus csak nyomós az egyik módszer az eredeti komponensre. Így változik a viselkedése a standard komponenst és végrehajtásának további funkciók az új alkatrész egy világos és egyszerű. Egy másik módszer az, hogy a viselkedése egy szabványos komponens hozzáadásával javították hozzá saját technikák és (vagy) felülírják az alapértelmezett eseménykezelõkkel.
Vegyük az első módszer a következő példát.
2. példa létrehozása olyan összetevő, amely konvertálja a jelenlegi tartalmát a beviteli mezők nagybetűvel és megszámoljuk a események egy karakter, melyet tartalmaz a beviteli mezőbe.
Példa állapotban ez azt jelenti, hogy az új összetevő, mivel a leginkább alkalmas szülői egy standard komponense szerkesztése tSzerkesztés osztályban. Legyen egy új komponens, az NewEdit. Ahhoz, hogy hajtsák végre a ráruházott feladatokat az alkatrész modul hozzá két módszer:
• ToUpper eljárás, amely konvertálja a jelenlegi tartalmát a beviteli mezők nagybetűkkel;
• funkció elemzi GetThisCharCount, amely visszatér a bejegyzések száma által meghatározott karaktert tartalmaz a beviteli mezőbe.
Lépés végrehajtása 1. példa 3., hozzon létre egy üres új komponenst modult, és add meg, hogy a felület a leírás részét új módszerek és ToUpper GetThisCharCount:

A végrehajtási szakasz tartalma programkódoknak új technikák, amelyek a következők lehetnek:

eljárás TNewEdit.ToUpper;
kezdődik
Szöveg: = Nagybetű (szöveg);
végén;
funkció TNewEdit.GetThisCharCount (C: char): egész;
var
i. integer;
kezdődik
Eredmény: = 0;
i: = 1-től hossz (Text) do
Ha a szöveg [i] = C, akkor Inc (Eredmény)
végén;

Telepítse NewEdit alkatrész paletta fülre New Delphi komponensek. Lépés végrehajtása 1. példa 4..
Vizsgáljuk meg az új alkatrész, amely létrehoz egy új alkalmazás, helyezze a komponens formájában NewEdit, Edit komponens bemenet határozza meg a szimbólumot és három gomb. Beviteli mezők segítségével Label összetevők biztosítják a szalagcímek, mint például: „Az eredeti szöveg” „Állítsa be a karaktert.” Gombok is ad egy nevet, például: „Transzfer a tőke”, „száma események”, „Exit”. Az első két gomb, hogy előkészítsék a onclick eseménykezelő, hogy mindegyikük okozott az egyik add módszer:

eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
NewEdit1.ToUpper;
végén;

eljárás TForm1.Button2Click (Sender: TObject);
kezdődik
ShowMessage ( 'száma események egy karakter' + Edit1.Text [1] + = „+
IntToStr (NewEdit1.GetThisCharCount (Edit1.Text [1])));
NewEdit1.Text: = ''; Edit1.Text: = ''
végén;

Indítsa el az alkalmazást, és nézd meg az új NewEdit alkatrész megfelelően végezni a feladatokat.
Lépés végrehajtása 6 (1. példa), előkészíti, és regisztrálja a Delphi ikonra NewEdit komponenst.
Amikor létrehoz egy egyéni összetevő, leggyakrabban akkor van szükség, hogy ugyanaz a reakció, hogy a rendezvények, valamint a komponens, amelyre tervezték. Amikor a szülő komponens osztály választott osztályt, amely megvalósítja, például az egyik standard alkatrészek (Edit osztály 2. példa), a speciális ellátást az események nem kell: minden rendezvény Edit komponenst, elérhető lesz és alkatrész NewEdit.
A feladatot nehezíti a következő esetekben:
1. Ha egy osztályt, amely megvalósítja az új alkatrész az utódja egy absztrakt osztály (például lehetne tenni TNewEdit osztályt TCustomEdit - tSzerkesztés őse).
2. Ha szeretné, hogy az új alkatrész, hogy reagáljon egy esemény nem tetszik az őse, és a reakció lenne végre a komponens maga, hanem segítségével az alkalmazás, amelyben használni fogják.
Az első esetben, a sorrendben az új osztály nincs esemény nem alapértelmezett. Ha szeretné, hogy az új alkatrész bejutott az eseményeket, például az onclick és onkeydown, akkor nyilvánítja őket tulajdonságait a közzétett rész:

Miután ez az esemény OnClick és onkeydown megjelennek az Események lapon az Object Inspector, és be lehet programozni a szokásos módon való feldolgozás az alkatrész modul.
A második esetben, akkor csak meg kell, hogy felülbírálja a amplitúdókomponensre felvezető eljárás szükséges eseményeket. Vegyük azt az esetet a következő példát.
Példa 3. Készítsen egy olyan komponenst kerül bemutatásra gomb számít a kattintások száma, és megjeleníti azt a címkét. A többi új gomb válaszolnia kell a sürgető az ugyanaz, mint a szokásos.
Új elemként kell benyújtani gombot, akkor célszerű választani egy alap osztályt TButton osztályban. A létrehozott komponens fogja használni a kivitelező és onClick eseménykezelő. Jelölje ki az új összetevő neve New1Button.
Töltse ki az összes lépést, hogy hozzon létre egy új üres amplitúdókomponensre, és adjunk hozzá egy leírást egy új osztályt TNew1Button a következő sorokat:
• szakasz privát FCount lép pályára: Egész tárolni a kattintások számát a gombra;
• Panelfejlécek megjelöli az felülbírálja - az alap osztály konstruktora és létrehozása eseménykezelő OnClick:

kivitelező létrehozása (AOwner TComponent.) felülbírálhatja;
eljárás Click; felülbírálhatja;

A végrehajtási szakasz tartalma programkódoknak új módszerek:

Telepítse New1Button alkatrész paletta fülre New Delphi komponensek. Lépés végrehajtása 1. példa 4..
Vizsgáljuk meg az új alkatrész. hogy majd hozzon létre egy új alkalmazás, helyezze a komponens formájában New1Button és más szabványos alkatrészek (gombot, a címke és így tovább. d.) elérése elfogadható alkalmazás interfész. Ellenőrizze, hogy az új gomb megnyomása valóban tartja magát.
Lépés végrehajtása 6 (1. példa), előkészíti, és regisztrálja a Delphi ikonra New1Button komponenst.
Módosítsa a minta-alkalmazás, ami ott saját onclick eseménykezelő az New1Button gombot (például a felvezető, akkor vissza minden üzenet ShowMessage eljárás vagy más módon). Nézze meg a pályázatát, és a megfelelő következtetéseket.

Kapcsolódó linkek