FreeAndNil habe ich zum Testen genutzt, damit auch der Pointer auf nil gesetzt wird (ist ja "extremer" beim Fehlertest).
Zugriff auf "Self" bezog ich auf den Code innerhalb des TButton (der Code, der noch nach dem Aufruf der Ereignisbehandlung folgt, also MINDESTENS "end;").
Zitat:
Wie gesagt, einen Button in seinem OnClick freizugeben ist kein Problem.
Es sei denn, eine Komponente würde in ihrer Methode Click nach dem Aufruf einer zugewiesenen Ereignisbehandlung noch einmal auf ihre Daten zugreifen:
Delphi-Quellcode:
procedure TTestControl.Click;
begin
if Assigned(FOnClick) then
FOnClick(Self)
Caption := 'ERROR if Self = nil'
end;