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