Stránka 1 z 1

Delphi - jak na udalost?U objektu vytvoreneho za behu progr.

Napsal: sob 25. zář 2004, 11:55
od Borg2of3
Mam takovou proceduru, ktera mi vytvori mnou definovanej pocet klikatek za behu programu.... jak mam udelat, abych pak na kazdy z tehle vytvorenych klikatek mohl vyvolat za behu programu udalost..??? treba onclick... mouseover atd... a k tomu prislusnou reakci.... Nejak se mi to nepodarilo vymyslet a nikde na netu jsem to nenasel... :sad:

procedure tform1.vytvoreniikon();
var i:integer;
begin
for i := 1 to pocetikon do
begin
tlacitko := Tspeedbutton.create(form1);
tlacitko.parent := form1.Panel2;
tlacitko.top := i * 48;
tlacitko.left := 0;
tlacitko.width := 52;
tlacitko.height:= 48 ;
tlacitko.visible := true;
tlacitko.Flat:=true;
tlacitko.Caption:=inttostr(i);
tlacitko.Font.Size:=7;
tlacitko[i].Layout:=blglyphbottom;
tlacitko[i].ParentFont:=false;
tlacitko[i].Margin:=0;
tlacitko[i].Font.Name:='Arial';
tlacitko[i].Font.Style:=[fsBold];
end;
end;

Napsal: sob 25. zář 2004, 21:59
od pavel.minarik
type
TForm ....


procedure TlacitkoClick(Sender: TObject);
private
...

...

procedure TForm1.OnCreate(...);
begin
tlacitko.OnClick:= TlacitkoClick;
end;

...

procedure TForm1.TlacitkoClick(Sender: TObject);
begin
if (Sender as TSpeedButton).Name=Tlacitko.Name
then begin
....
end;
end;

Napsal: sob 25. zář 2004, 22:11
od Borg2of3
pavel.minarik píše:type
TForm ....


procedure TlacitkoClick(Sender: TObject);
private
...

...

procedure TForm1.OnCreate(...);
begin
tlacitko.OnClick:= TlacitkoClick;
end;

...

procedure TForm1.TlacitkoClick(Sender: TObject);
begin
if (Sender as TSpeedButton).Name=Tlacitko.Name
then begin
....
end;
end;


Dik :) rano se na to mrknu.

Napsal: ned 26. zář 2004, 07:22
od pavel.minarik
ještě bacha, mám tam chybu,
tlacitko.OnClick:= TlacitkoClick;
patří pochopitelně až po vytvorření toho tlačítka a ne do fom create

Napsal: ned 26. zář 2004, 12:06
od Borg2of3
pavel.minarik píše:ještě bacha, mám tam chybu,
tlacitko.OnClick:= TlacitkoClick;
patří pochopitelně až po vytvorření toho tlačítka a ne do fom create

Jasne to jsem pochopil :wink: ja se ted na to dival a zatim to funguje.. mockrat diky :)

Napsal: ned 26. zář 2004, 13:14
od pavel.minarik
Borg2of3 píše:Jasne to jsem pochopil :wink: ja se ted na to dival a zatim to funguje.. mockrat diky :)
jasně, že to funguje, takhle se dají dynamicky přiřazovat metody obsluhující události, třeba i objektu TApplication, jen je třeba si dát bacha na to, aby hlavička metody seděla s hlavičkou řekněme defaultní obslužné procedury

Napsal: ned 26. zář 2004, 14:02
od Borg2of3
pavel.minarik píše:jasně, že to funguje, takhle se dají dynamicky přiřazovat metody obsluhující události, třeba i objektu TApplication, jen je třeba si dát bacha na to, aby hlavička metody seděla s hlavičkou řekněme defaultní obslužné procedury
to jako ze mam treba nejakej objekt kuprikladu speedbutton kterej nema placnu "ondestroy" ze mu tuhle udalost muzu pridat? To by se u nekterych objektu dost hodilo... ted me ale honem nenapada u kterych :)

Napsal: ned 26. zář 2004, 14:57
od pavel.minarik
Borg2of3 píše:to jako ze mam treba nejakej objekt kuprikladu speedbutton kterej nema placnu "ondestroy" ze mu tuhle udalost muzu pridat? To by se u nekterych objektu dost hodilo... ted me ale honem nenapada u kterych :)
jo, jde to u každýho objektu dynamicky na běhu nastavit, která metoda obsluhuje kterou událost (proč by to nemělo jít, když to jde u onClick)