Da kommst Du wohl um eine eigene methode nicht drumrum
close() ist nämlich nicht virtuell und wird
imho auch beim Drücken auf das Kreuz gerufen.
eine Lösung wäre:
im Interface deiner Form schreibst du:
Delphi-Quellcode:
private
_bExecuteCloseAction: Boolean;
...
public
...
Constructor Create(Owner: TComponent); Override;
function CloseQuery: Boolean; Override;
Procedure Close(_bExecuteCloseAction: Boolean); ReIntroduce; Overload;
...
der Body der Funltion sieht dann so aus:
Delphi-Quellcode:
Procedure TMyForm.Close(_bExecuteCloseAction: Boolean);
Begin
bExecuteCloseAction:=_bExecuteCloseAction;
Close;
End;
Natürlich muss die Boolean variable im Constructor noch initialisiert werden:
Delphi-Quellcode:
Constructor TMyForm.Create(Owner: TComponent);
Begin
Inherited;
bExecuteCloseAction:=True;
End;
und im CloseQuery abgeprüft:
Delphi-Quellcode:
function TMyForm.CloseQuery: Boolean; Override;
Begin
If bExecuteCloseQuery
Then Begin
//hier Deine schließfunktionalität
Result:=?????;
End Else Result:=True;
End;
Jetzt kannst du irgendwo im code schreiben
Delphi-Quellcode:
MyForm1.Close(false); //wenn nix ausgeführt werden soll
//oder
MyForm.Close;
//bzw
MyForm.Close(true); //wenn die funktionalität ausgeführt werden soll
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>