AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bei FormClose() auf abbrechen reagieren?

Ein Thema von toko · begonnen am 7. Jul 2005 · letzter Beitrag vom 7. Jul 2005
Antwort Antwort
toko

Registriert seit: 19. Apr 2005
40 Beiträge
 
#1

Wie bei FormClose() auf abbrechen reagieren?

  Alt 7. Jul 2005, 03:30
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:
{ 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;
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...

Kann mir jemand helfen?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Wie bei FormClose() auf abbrechen reagieren?

  Alt 7. Jul 2005, 03:39
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;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
toko

Registriert seit: 19. Apr 2005
40 Beiträge
 
#3

Re: Wie bei FormClose() auf abbrechen reagieren?

  Alt 7. Jul 2005, 09:08
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
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#4

Re: Wie bei FormClose() auf abbrechen reagieren?

  Alt 7. Jul 2005, 12:32
Hi,

Anwendung von OnCloseQuery

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
toko

Registriert seit: 19. Apr 2005
40 Beiträge
 
#5

Re: Wie bei FormClose() auf abbrechen reagieren?

  Alt 7. Jul 2005, 16:55
Danke an euch, hat alles super geklappt

Grüsse ToKo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz