有这个链接How do I Invoke a procedure when inside another procedure in Pascal但不完全是我的情况。
procedure TForm1.Button1Click(Sender: TObject);
var
[...]
begin
// click on button
[...]
end;
我有这个程序
procedure TForm1.CheckListBox2DblClick(Sender: TObject);
begin
// on double click in flags
[the same code like above]
end;
我试过这个,但它不起作用
procedure TForm1.CheckListBox2DblClick(Sender: TObject);
begin
TForm1.Button1Click;
end;
然后我尝试了这个
procedure TForm1.CheckListBox2DblClick(Sender: TObject);
begin
TForm1.Button1Click(Sender: TObject);
end;
它也不起作用 有人可以帮帮我吗?
答案 0 :(得分:3)
只需使用nil
或其他组件作为Sender
直接调用它:
procedure TForm1.CheckListBox2DblClick(Sender: TObject);
begin
Button1Click(nil);
end;
procedure TForm1.CheckListBox2DblClick(Sender: TObject);
begin
Button1Click(CheckListBox2);
end;
请注意,您不使用表单本身的类名(或变量名),因为您是从表单的当前实例调用的。 IOW,不在类方法中使用TForm1
或Form1
;这限制了您对表单的特定实例,而不是所有实例都可用。如果您需要对其进行限定,请使用Self
,如Self.Button1Click(nil);
。
答案 1 :(得分:0)
试试这个
procedure TForm1.CheckListBox2DblClick(Sender: TObject);
begin
TForm1.Button1Click(Sender);
end;