想象一下,您想分配自己的事件过程:
procedure TSuperObject.DoSomething(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ShowMessage('Yes, I am doing');
end;
到窗体上的任何 TWinControl。通常,如果您在表单上有 Panel1 (TPanel),您可以轻松完成:
Panel1.OnMouseDown:=SuperObject1.DoSomething;
但是,如果你想普遍做到,怎么可能做到呢?您无法访问 TWincontrol 的受保护成员,所以直观的答案:
AnyWinControl.OnMouseDown:=SuperObject1.DoSomething;
根本行不通。
RTTI可以做吗?如何?
谢谢