我是用如下代码生成的窗口,ACC是记录创建窗体的数目
ACC := ACC + 1;
with TForm.Create(nil) do
begin
Name := 'Form' + IntToStr(ACC);
Caption := Name;
Position := poMainFormCenter;
//OnClick := MyFormClick;
Show;
end;MyFormClick的函数声明,写成TForm.MyFormClick(...)这样是不能运行的,那我应该如何注册窗体里的事件呢?
ACC := ACC + 1;
with TForm.Create(nil) do
begin
Name := 'Form' + IntToStr(ACC);
Caption := Name;
Position := poMainFormCenter;
//OnClick := MyFormClick;
Show;
end;MyFormClick的函数声明,写成TForm.MyFormClick(...)这样是不能运行的,那我应该如何注册窗体里的事件呢?
Incompatible types:'method pointer and regular procedure'
声明是不放在公共区域了,你把他放私有部分,应该不会出错的,
但是我不知道原因:)
并不是说在实现节内申明并定义
TMyForm = class(TForm)
...
public
procedure MyFormClick(Sender: TObject);
end;implementationprocedure TMyForm.MyFormClick(Sender: TObject);
begin
//do something;
end;
-------------------------------------------------- ACC := ACC + 1;
with TMyForm.Create(nil) do
begin
Name := 'Form' + IntToStr(ACC);
Caption := Name;
Position := poMainFormCenter;
OnClick := MyFormClick;
Show;
end;