Delphi TButton.OnClick 匿名函数用法(无聊转转)

复制代码
 1 type
 2   TNotifyEventRef = reference to procedure(Sender: TObject);
 3 
 4 function AnonymousEvent(const Proc: TNotifyEventRef): TNotifyEvent;
 5 type
 6   TVtable = array[0..3] of Pointer;
 7   PVtable = ^TVtable;
 8   PPVtable = ^PVtable;
 9 begin
10   TMethod(Result).Code := PPVtable((@Proc)^)^^[3];
11   TMethod(Result).Data := Pointer((@Proc)^);
12 end;
13 
14 procedure TForm1.FormCreate(Sender: TObject);
15 begin
16   //变态写法
17   @Button1.OnClick := PPointer(Cardinal(PPointer(
18     procedure(Sender: TObject)
19     begin
20       ShowMessage('你好,人民币!');
21     end)^) + $0C)^;
22 
23   //正经写法
24   Button2.OnClick := AnonymousEvent(
25     procedure(Sender: TObject)
26     begin
27       ShowMessage('Hello,Money!');
28     end);
29 end;
复制代码

 

posted @   大宋666  阅读(100)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示