gpt4 book ai didi

delphi - 调用一个名称由另一个过程设置的过程(通过事件)

转载 作者:行者123 更新时间:2023-12-03 15:54:47 25 4
gpt4 key购买 nike

我希望在事件发生时执行一个过程。但该过程是由另一个过程设置的(SetNotifierProc)。

首先我运行这个:

SetNotifierProc(Proc1);

然后每当事件触发时就会执行Proc1

如何编写 SetNotifierProc 代码来获取过程作为参数,以及如何通知事件处理程序执行该过程?

问题:我有一个 TCPServerExecute 并且想要运行一个过程来显示收到的数据。但是因为我有多个表单,所以我想设置一个处理接收到的数据的过程。

谢谢

最佳答案

如果您的过程是不带参数的普通过程:

Type
TForm1 = Class(TForm)
..
private

FMyProc : TProcedure;
public
procedure SetEventProc(aProc : TProcedure);
procedure TheEvent( Sender : TObject);
end;

procedure Test;
begin
// Do something
end;

procedure TForm1.SetEventProc(aProc: TProcedure);
begin
Self.FMyProc := aProc;
end;

procedure TForm1.TheEvent(Sender: TObject);
begin
if Assigned(FMyProc) then
FMyProc;
end;

// to set the callback to procedure "Test"
Form1.SetEventProc(Test);

如果您的过程有参数,请声明过程类型:

Type
MyProcedure = procedure( aString : String);

如果你的过程是一个方法:

Type
MyMethod = procedure( aString : String) of Object;

另请参阅有关 Procedural types 的文档.

关于delphi - 调用一个名称由另一个过程设置的过程(通过事件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18074760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com