Dinamikusan okozó alkatrészek

Dinamikusan okozó alkatrészek.

Szia, gyors reagálás az ilyen kérdés. Hozzon létre egy dinamikus panel, és rajta SpeedButton gombra. Ezek a panelek gombokkal a helyzettől függően eltérő lehet összegeket. Handler nyomja a gombokat is B.OnClick: = Form1.Informacia. # XA0; megkérdezése, hogyan lehet létrehozni egy dinamikus kezelőt minden gomb létre. # XA0;
# XA0;

eljárás TForm1.UserConnect;
var
B: TSpeedButton;
G: TGroupBox;
Informácia: TNotifyEvent;
kezdődik
// Létrehozunk egy foglalat gomb alatt.
G: = TGroupBox.Create (Form1);
G.Parent: = Form1.ScrollBox1;
G.Caption: = ImiaKomp;
ButtonCoordinat; // A koordinátákat.
G.Height: = H;
G.Left: = L;
G.Top:=T-ScrollBox1.VertScrollBar.Position;
G.Width: = W;
// Create gombra.
B: = TSpeedButton.Create (Form1);
B.Parent: = G;
B.OnClick: = Form1.Informacia;
B.Glyph.LoadFromFile ( "kompyuter.bmp");
B.Height: = 73;
B.Left: = 5;
B.Top:=15;
B.Width: = 90;
végén;

Mit jelent az, hogy „dinamikusan létrehozni egy felvezető”?

Dinamikusan hozzá -, egyértelmű (és így a kódban: B.OnClick: = Form1.Informacia, csak vegye ki a Form1), de mi azt jelenti, hogy „dinamikusan létrehozni”?

Az eseménykezelő - egy osztály módszer. Azaz, egy adott gépen kódot, egy szoftver. Azt akarjuk, hogy a program maga hozott létre egy darab svego ugyanazt a kódot?

Általánosságban elmondható, hogy meg lehet csinálni, de nem biztos tudás szerelő és gépi utasítások ezt a feladatot még jobb, és nem veszi. A kezdők az ilyen dolgok nyilvánvalóan nem tudja kezelni, és NEnachinayuschim nagyon kevesen a fogakat.

A tény az, hogy ezt a kódot, ha rákattint bármelyik gomb érhető B.OnClick eljárás: = Form1.Informacia. És ez szükséges, hogy minden gomb meghívja a felvezető, mondja meg, hogyan kell változtatni a kódot.


> B.OnClick: = Form1.Informacia. És az szükséges, hogy az egyes gombok
> Okozott felvezető, mondja meg, hogyan kell változtatni a kódot.

1) minden egyes a gomb felvezető
2) A felvezető, hogy melyik gombot általa okozott, és elvégzi a különböző kódot.

Az erre a kérdésre, nem tudom, hogyan kell csinálni, mondd el.

Amit nem tudom, hogyan kell csinálni?
Minden gomb felvezető vagy tekintse meg, milyen az a gomb az azonos kezelő,

A gombok dinamikusan jönnek létre, így nem izvestrno előre, hogyan lesz, így levelet kezelőt minden gomb nem. Mivel nem találom a generált felvezető milyen alapon, hogy melyik gombot okozott a felvezető és hogyan lehet vonzó a dinamikusan létre egy gombot.


> # XA0; hogy ellenőrizze, mi az a gomb az azonos kezelő,

Hogyan állapítható meg, hogy melyik gombot okozott a felvezető?

> Hogyan állapítható meg, hogy melyik gombot okozott a felvezető?

Egy lehetséges példa a sor, nem találom, hogyan kell csinálni?

Sok köszönet mindenkinek, aki részt vett a konferencián, de tud valaki segíteni megtörni a patthelyzet, csepp a hivatkozási pont.

Keresztül Case sikertelen pridyatsya keresztül, ha:
ha a feladó = SpeedButton ezután kezdődik
# XA0; # XA0;.
# XA0; # XA0; végén;

> Ha a feladó = SpeedButton ezután kezdődik

Sam-Megnéztem a kódot?

És amit nem tetszik?

Próbálja meg kimondani a szavakat, hogy ellenőrizze a kódban.

Ha megnyomja SpeedButton, tennie kell valamit.

Ellenőrzés a Sender TSpeedButton osztályába tartozó útján van.
Ha a feladó TSpeedButton majd.

Az a kérdés egy másik (mindegyik gomb), ebben az esetben az alábbi gombra nazvaneim SpeedButton

Ha SpeedButton Név ingatlan értékét,

Ha TSpeedButton (küldő) .name = SpeedButton majd.

Ha (küldő, mint TSpeedButton) .name = SpeedButton majd.

Nem, nem, én verzió működik anélkül, hogy ezeket a problémákat magad ellenőrizni. )))


> B.OnClick: = Form1.Informacia. És az szükséges, hogy az egyes gombok
> Okozott felvezető, mondja meg, hogyan kell változtatni a kódot.

B: = TSpeedButton.Create (Form1);
B.Parent: = G;
B.OnClick: = Form1.Informacia;
b.tag: = 15;
C: = TSpeedButton.Create (Form1);
C.Parent: = G;
C.OnClick: = Form1.Informacia;
C.tag: = 16;
D: = TSpeedButton.Create (Form1);
D.Parent: = G;
D.OnClick: = Form1.Informacia;
Db.tag: = 17;

felvezető
A feladó a TSpeedButton csinálni kezdődik
# XA0; ha sender.tag = 15, akkor a gomb kezelő, tag egyenlő 15
# XA0; ha sender.tag = 16, akkor a gomb kezelő, tag egyenlő 15
# XA0; ha sender.tag = 17, akkor a gomb kezelő, tag egyenlő 15

# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; end

Memória: 0,76 MB
Idő: 0.062 c