Das mache ich ja jetzt auch:
Delphi-Quellcode:
procedure TMyComp.BeforeDestruction;
begin
if Assigned(FOnDestroy) then
begin
FOnDestroy(Self);
end;
inherited;
end;
In der Form sieht es dann so aus:
Delphi-Quellcode:
procedure TfrmMain.MyCompDestroy(Sender: TObject);
begin
ShowMessage('Meine Komponente OnDestroy');
end;
Das ShowMessage wird zwar durchlaufen, aber nicht ausgeführt.
Wenn ich die Variante von Sir Rufo verwende, ist die Bedingung im If nicht erfüllt. Dementsprechend ist das Verhalten dann identisch, bis auf die zusätzliche Prüfung.