![]() |
"Programm beenden" abbrechen
Hallo,
sicherlich mal wieder eine überflüssige Frage, aber ich komme damit einfach nicht weiter und konnte bislang auch noch nichts dazu finden: Ich möchte beim Programmende die Variable CoreStatus abfragen, die vorher mit einem Status belegt wurde. Ist diese Variable leer, soll das Programm beenden, ansonsten soll ein Dialog angezeigt werden, der darauf hinweist, dass Daten noch nicht gespeichert wurden.
Delphi-Quellcode:
Ich würde es verstehen, aber Delphi anscheinend nicht :-)
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var ButtonSelected: Integer; begin if CoreStatus <> '' then begin ButtonSelected := MessageDlg('Data not saved. Really quit?',mtConfirmation, mbOKCancel, 0); if ButtonSelected = mrCancel then PageControl1.ActivePage := Z_DataEntry; end; end; Kann mir jemand einen Tipp geben, wo der Denkfehler liegt? Danke Opa |
Re: "Programm beenden" abbrechen
Schau dir mal im Objekt-Inspektor und in der Hilfe das Ereignis OnCloseQuery an. Das könnte dir vielleicht weiterhelfen.
|
Re: "Programm beenden" abbrechen
Hallo,
Danke für den Tipp. Ich habe jetzt einen OnCloseQuery-Event erstellt, der wie folgt lautet:
Delphi-Quellcode:
(Ist mehr oder weniger der Hilfe entnommen)
if CoreStatus <> '' then
begin if MessageDlg('Close the form?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel then CanClose := False; end; Trotzdem klappt es leider nicht. Der Ansatz ist zwar (soweit ich das sehen kann) logisch und schlüssig, aber irgendwo habe ich immer noch einen Denkfehler. Jemand eine Idee, wo dieser liegen könnte? Danke Opa |
Re: "Programm beenden" abbrechen
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var MsgResult: Integer; begin CanClose := True; if CoreStatus <> '' then begin MsgResult := MessageDlg('Daten speichern?', mtConfirmation, mbYesNoCancel, 0); case MsgResult of mrYes: begin ShowMessage('Daten werden gespeichert... Programm wird beendet.'); end; mrNo: begin ShowMessage('Daten werden nicht gespeichert... Programm wird beendet.'); end; mrCancel: begin ShowMessage('Programm wird fortgesetzt.'); CanClose := False; end; end; end; end; |
Re: "Programm beenden" abbrechen
Hallo,
Danke für den Tipp - so funktionierts... Gruß Opa |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 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