Thema: Delphi Problem mit Boolean =(

Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Problem mit Boolean =(

  Alt 30. Mai 2009, 03:13
Nein, das ist so nicht ganz passend, denn einen solchen Speicherndialog kann man normalerweise auch abbrechen und kommt dann wieder ins Programm zurück. Das geht so nicht.

Zudem ist die 36 als Zahl statt der entsprechenden (lesbaren) Konstanten ganz übler Programmierstil...

So passt das besser:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Close; // Löst das Ereignis ja aus
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if RichEdit1.Modified then
    case Application.MessageBox('Wollen sie das geänderte Dokument speichern?',
      'Frage', MB_ICONQUESTION or MB_YESNOCANCEL) of
      IDYES:
        if SaveDialog1.Execute then
          ...
        else
          CanClose := False;
      IDCANCEL:
        CanClose := False;
    end;
end;
Auf diese Weise wird gefragt, ob gespeichert werden soll, und wenn man das bejaht, den Dialog aber abbricht, wird das Schließen abgebrochen. Ebenfalls wird abgebrochen, wenn man abbrechen drückt.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat