Aber ich scheitere doch schon zur DesignTime, weil ich die Notify-Methode nicht programmieren kann.
Delphi-Quellcode:
unit thObserver;
interface
uses
System.Generics.Collections,
Rtti;
type
TObserver<T> =
class
private
FEvents: TList<T>;
public
constructor Create;
destructor Destroy;
override;
procedure Notify(Args:
array of TValue);
property OnEvent: TList<T>
read FEvents;
end;
implementation
{ TObserver<T> }
constructor TObserver<T>.Create;
begin
FEvents := TList<T>.Create;
end;
destructor TObserver<T>.Destroy;
begin
FEvents.Free;
inherited;
end;
procedure TObserver<T>.Notify(Args:
array of TValue);
var
Event: T;
begin
for Event
in FEvents
do
begin
Event(Args);
/// Bis hierhin ist noch alles gut, aber das hier geht ja nicht
end;
end;
end.