![]() |
Wie bei FormClose() auf abbrechen reagieren?
Hallo,
ich habe mal eine kurze Frage: Wenn ich mein Programm über einen Menüeintrag schließe, dann rufe ich folgende Procedure auf:
Delphi-Quellcode:
Ich habe aber keine Ahnung, wie ich dieses Verhalten übernehmen kann, wenn ich auf den Schließen-Button des Fensters klicke. Oder habe ich eine Möglichkeit den Button zu deaktivieren bzw. auszublenden? Hab schon versucht mit BorderStyle zu arbeiten. "bsNone" sieht aber nicht gerade schön aus...
{ Abfrage zum Speichern, danach Programm schließen}
procedure TfrmMain.showDialogSaveXMLFileAndClose; begin if not IsXMLFileSaved then begin if Trim(XMLfile)='' then begin case MessageDlg('Möchten Sie die Änderungen speichern?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of { kein Dateiname angegeben und sichern } mrYes: begin if dlgSave.Execute then begin XMLfile := dlgSave.FileName; XMLDoc.save(XMLfile); IsXMLFileSaved := True; Close; end; end; { kein Dateiname angegeben und ohne zu sichern fortfahren } mrNo: begin Close; end; { Dialog abbrechen } mrCancel: begin exit; end; end; end else begin case MessageDlg('Möchten Sie die Änderungen in '+ XMLfile +' speichern?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of { Dateiname angegeben und sichern } mrYes: begin XMLDoc.save(XMLfile); IsXMLFileSaved := True; Close end; { Dateiname angegeben und ohne zu sichern fortfahren } mrNo: begin Close; end; { Dialog abbrechen } mrCancel: begin exit; end; end; end; end else begin close; end; end; Kann mir jemand helfen? |
Re: Wie bei FormClose() auf abbrechen reagieren?
Nutze das OnClose Ereignis der Form für solche Sachen oder OnCloseQuery kommt drauf an, was du machen willst.
Delphi-Quellcode:
// Button zum Schließen
procedure TForm1.Button1Click(Sender: TObject); begin Close; end; // Wird immer ausgelöst, wenn Form geschlossen wird, auch über die Schaltfläche // in der Titelleiste procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if Messagebox(Handle, 'Programm schließen?', PChar(Caption), MB_YESNO or MB_ICONQUESTION) = IDNO then CanClose := False else CanClose := True; end; |
Re: Wie bei FormClose() auf abbrechen reagieren?
Hallo,
@Luckie ich kann es gerade leider nicht ausprobieren, wird der Schließvorgang auch Unterbrochen, wenn ich auf "Abbrechen" meines Dialogs klicke? Mit OnClose kann ich ja nicht arbeiten, da ich ja sonst eine Endosschleife programmiere... Gruß Torsten |
Re: Wie bei FormClose() auf abbrechen reagieren?
|
Re: Wie bei FormClose() auf abbrechen reagieren?
Danke an euch, hat alles super geklappt :thumb:
Grüsse ToKo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz