Як програмно задати процедуру на подію?
Майстри, підкажіть, як програмно (!) Задати процедуру, яка буде викликатися на певну подію? Поясню простіше: в закладці Events в Object Inspector будь-яка подія вибираєш і праворуч вибираєш яку треба тобі процедуру, а як це ж саме зробити програмно?
Тобто щось типу:
Control.OnMouseClick: = імя_процедури (але не зовсім так, тому що Делфі таку запису не хаває)
> Імя_процедури (але не зовсім так, тому що Делфі таку
> Запису не хаває)
Не просто процедури, а МЕТОДУ об'єкта.
procedure MouseClick (Sender: TObject);
.
Control.OnMouseClick: = MouseClick;
Можете мені написати посто приклад? я так бістрее зрозумію
FreeLancer - так не працює, я ж писала вже.
procedure TForm1. MouseClick (Sender: TObject);
.
Control.OnMouseClick: = Form1.MouseClick;
// або просто: = MouseClick всередині методів Form1
> ELKa (05.12.02 12:08)
> FreeLancer - так не працює, я ж писала вже.
Що значить не працює?
procedure TForm1.FormCreate (Sender: TObject);
begin
btn: = TButton.Create (Form1);
btn.Parent: = Form1;
btn.Left: = 0;
btn.Top:=0;
btn.OnClick: = Button1Click;
end;
procedure TForm1.Button1Click (Sender: TObject);
begin
Form1.Grid.Cells [0,0]: = "000000";
end;
Вся справа в тому, що у предка мого компонента НІ такої події, яке мені треба визначити
> ELKa (05.12.02 12:17)
> Вся справа в тому, що у предка мого компонента НІ такого
> Події, яке мені треба визначити
А може тоді ця подія спочатку визначити? :-)
Ну ось і розібралися. А то: "Не ПРАЦЮЄ" :-)
type
TForm1 = class (TForm)
procedure FormCreate (Sender: TObject);
private
public
procedure ControlClick (Sender: TObject); // Це буде твій метод
end;
var
Form1: TForm1;
procedure TForm1.ControlClick (Sender: TObject);
begin
// Що робитимеш в методі
end;
procedure TForm1.FormCreate (Sender: TObject);
begin
MyControl: = TMyContol.Create (self);
MyControl.Click:= Form1.ControlClick
end;