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;