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;
====Code is changing the world====

浙公网安备 33010602011771号