Oltre a questo post cui risposta accettata rimane molto criptico:TProc <TObject> a TNotifyEvent
@Button1.OnClick := pPointer(Cardinal(pPointer(procedure (sender: tObject) begin ((sender as TButton).Owner as TForm).Caption := 'Freedom to anonymous methods!' end)^) + $0C)^;
mi chiedo che scendessimo sia possibile escogitare un modo più semplice e elegante, simile a:
Button.OnClick :=
AnonProc2NotifyEvent (
procedure (Sender: TObject)
begin
((Sender as TButton).Owner as TForm).Caption := 'Freedom to anonymous methods!'
end
);
in modo da per raggiungere lo stesso scopo e dove AnonProc2NotifyEvent è un metodo del proprietario di Button con la seguente firma:
TOwnerOfButton = class(TForm)
Button: TButton;
...
private
...
protected
function AnonProc2NotifyEvent(aProc: TProc<TObject>): TNotifyEvent;
public
...
end;
È fattibile e, in caso affermativo, come implementarlo?
Potrebbe essere utile dare un'occhiata a [DSharp.Core.Events.pas] (http://code.google.com/p/delphisorcery/source/browse/trunk/Source/Core/DSharp.Core.Events .pas). –
@Stefan Glienke: Grazie per avermelo ricordato, ho davvero installato DSharp sulla mia scatola e l'ho perso (a mio avviso, non lo uso spesso così spesso) ma credo di seguirlo sin dal suo inizio (Bwt I Sono anche membro di DelphiPraxis, non molto bravo in tedesco, ma cerco di tenere d'occhio la vivace scena tedesca di Delfi). Di sicuro Generics è il mio prossimo passo. Grazie * Stevie * :-) – menjaraz