Die Logik verstehe ich nicht so ganz. Warum übergibst du nicht einfach den Typ des Formulars, damit der Toast dieses erstellen kann?
Wenn du die Instanz selbst übergibst, musst du die vorher selbst erstellen. Und wenn du wie aktuell die globale Variable übergibst, kannst du immer nur einen Toast pro Formular absetzen.
Also so:
Delphi-Quellcode:
TToast<T: TForm> = class
private
FForm: T;
public
constructor Create;
property Form: T read FForm;
end;
{ TToast<T> }
constructor TToast<T>.Create;
begin
inherited Create;
FForm := T.Create(nil);
FForm.OnShow := FormShowEvent;
FForm.OnClose := FormCloseEvent;
FTimer := TTimer.Create(nil);
end;
Nebenbei:
Deine Quelltextformatierung ist ja der aus dem offiziellen Styleguide sehr ähnlich. Das ist sehr gut. Wie wäre es, wenn du auch die Einrückung auf dem Standard lässt (2 Zeichen)? Bei 1 Zeichen sieht man kaum die Struktur, braucht daher länger um den Quelltext zu lesen.