Tiếp tục để post này có chấp nhận câu trả lời vẫn còn rất khó hiểu:TProc <TObject> để TNotifyEvent
@Button1.OnClick := pPointer(Cardinal(pPointer(procedure (sender: tObject) begin ((sender as TButton).Owner as TForm).Caption := 'Freedom to anonymous methods!' end)^) + $0C)^;
Tôi tự hỏi thời tiết có thể đưa ra một đơn giản nhất và cách thanh lịch giống như:
Button.OnClick :=
AnonProc2NotifyEvent (
procedure (Sender: TObject)
begin
((Sender as TButton).Owner as TForm).Caption := 'Freedom to anonymous methods!'
end
);
như vậy là để đạt được mục đích tương tự và nơi AnonProc2NotifyEvent là phương thức của chủ sở hữu Nút có chữ ký sau:
TOwnerOfButton = class(TForm)
Button: TButton;
...
private
...
protected
function AnonProc2NotifyEvent(aProc: TProc<TObject>): TNotifyEvent;
public
...
end;
Điều đó có khả thi và nếu có thì làm thế nào để thực hiện nó?
Bạn có thể muốn xem [DSharp.Core.Events.pas] (http://code.google.com/p/delphisorcery/source/browse/trunk/Source/Core/DSharp.Core.Events .pas). –
@Stefan Glienke: Cảm ơn bạn đã nhắc nhở tôi, tôi đã cài đặt DSharp trên hộp và tôi bỏ qua nó (để loại bỏ, tôi không thường xuyên sử dụng nó) nhưng tôi tin rằng tôi sẽ theo dõi nó kể từ khi thành lập (Bwt I) '' cũng là thành viên của DelphiPraxis, không giỏi tiếng Đức nhưng cố gắng theo dõi cảnh tượng Delphi của Đức). Để chắc chắn Generics là bước tiếp theo của tôi. Cảm ơn bạn * Stevie * :-) – menjaraz