Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: Event ist nicht sichtbar und wird nie ausgelöst

  Alt 7. Okt 2004, 15:58
Das es nicht aufgerufen wird, hat einen anderen Grund:
Deine überschrieben Methode wird nicht vom Formular aufgerufen, weil sie an dieser Stelle ja nicht weiß, dass in einem Nachfahren diese Prozedur überschrieben wird!
Mein Vorschlag:
Delphi-Quellcode:
type
TSomeForm = class(TForm)
  private
    FOnBeforeClose: TNotifyEvent;
    procedure WMClose(var Message: TMessage); message WM_CLOSE;
  published
    property OnBeforeClose: TNotifyEvent read FOnBeforeClose write FOnBeforeClose;
end;

{...}

procedure TSomeForm.WMClose(var Message: TMessage);
begin
  if Assigned(FOnBeforeClose) then
    FOnBeforeClose(Self);
  inherited;
end;
Wenn du allerdings an dieser Stelle auch die CloseAction haben willst, dann musst du dir das in der Prozedur zusammenpulen.
Btw. Es gibt das Event CloseQuery, das ist quasi das BeforeClose-Event. Dort kannst du das Schließen des Fensters noch verhindern, wenn du das willst.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat