Cum să specificați programatic o procedură pentru un eveniment

Cum pot specifica programatic o procedură pentru un eveniment?

Wizards, spune-mi cum să programez (!) Setați o procedură care va fi apelată la un anumit eveniment? Voi explica mai simplu: în fila Evenimente din Object Inspector, selectați orice eveniment și alegeți procedura corectă pentru dvs. în partea dreaptă și cum o faceți programabil?







Ie ceva de genul:
Control.OnMouseClick: = ProcedureName (dar nu exact, deoarece Delphi nu hack această intrare)


> Nume de procedură (dar nu exact, deoarece Delphi este astfel
> scrie nu se hawala)

Nu doar procedura, ci METODA obiectului.


procedura MouseClick (expeditor: TObject);
.
Control.OnMouseClick: = MouseClick;

Îmi puteți scrie un exemplu? Înțeleg așa de repede

FreeLancer - nu funcționează, am scris deja.

procedura TForm1. MouseClick (Expeditor: TObject);

.
Control.OnMouseClick: = Form1.MouseClick;






// sau doar: = MouseClick în interiorul metodelor Form1


> ELKa (05.12.02 12:08)
> FreeLancer - așa că nu funcționează, am scris deja.

Ce înseamnă că nu funcționează?

procedura TForm1.FormCreate (expeditor: TObject);
începe
btn: = TButton.Create (Form1);
btn.Parent: = Form1;
btn.Left: = 0;
btn.Top:=0;
btn.OnClick: = Button1Click;
se încheie;

procedura TForm1.Button1Click (expeditor: TObject);
începe
Form1.Grid.Cells [0,0]: = "000000";
se încheie;

Lucrul este că strămoșul componentei mele nu are un astfel de eveniment, pe care trebuie să îl determin


> ELKa (05.12.02 12:17)
> Lucrul este că strămoșul componentei mele nu are așa ceva
> un eveniment pe care trebuie să îl definim

Și poate că acest eveniment este definit pentru prima dată? :-)

Ei bine, asta e ordonat. Și apoi: "NU LUCRE" :-)


tip
TForm1 = clasa (TForm)
procedura FormCreate (expeditor: TObject);
privat

public
procedură ControlClick (expeditor: TObject); // Aceasta va fi metoda ta
se încheie;

var
Form1: TForm1;

procedura TForm1.ControlClick (expeditor: TObject);
începe
Ce vei face in metoda
se încheie;

procedura TForm1.FormCreate (expeditor: TObject);
începe
MyControl: = TMyContol.Create (auto);
MyControl.Click:= Form1.ControlClick
se încheie;







Trimiteți-le prietenilor: