AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi MessageDlg - Rückgabewert überprüfung läuft schief ;(
Thema durchsuchen
Ansicht
Themen-Optionen

MessageDlg - Rückgabewert überprüfung läuft schief ;(

Ein Thema von f4k3 · begonnen am 5. Jan 2009 · letzter Beitrag vom 5. Jan 2009
Antwort Antwort
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#1

MessageDlg - Rückgabewert überprüfung läuft schief ;(

  Alt 5. Jan 2009, 20:10
Habe im OnClose-Event eine Abfrage über einen MessageDlg ... der Abfragen soll ob das Programm beendet werden soll oder nicht.
Wenn "ja" gedrückt wurde, soll das Programm beendet werden ...
Wenn "nein" gedrückt wurde, soll nichts geschehen ...

Ich mach das ganze über die Close-Actions ... mein Code sieht folgendermaßen aus

Delphi-Quellcode:
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  { Sicherheitsabfrage ob Programm beendet werden soll }
  if MessageDlg('Programm beenden?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
    caFree;
  end
  else
  begin
    caNone;
  end;
end;
und so ruf ich dass ganze auf ...

Delphi-Quellcode:
procedure TfMain.btnCloseClick(Sender: TObject);
begin
  { Programm schliessen }
  fMain.Close;
end;
Nun ... egal was "drücke" ... das Programm wird immer beendet ... das ganze ist insofern merkwürdig ...
dass ich diese Code-Zeile bestimmt schon 100x in anderen Programmen ausgeführt habe ... und da hats korrekt funktioniert

Oder bin ich einfach zu doof und hab was übersehen?!

Danke für eure Hilfe

Euer f4k3
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(

  Alt 5. Jan 2009, 20:15
Hi!

Müsstes du cafree und canone nicht der Var. action zuweisen?


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#3

Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(

  Alt 5. Jan 2009, 20:17
Zitat von fkerber:
Hi!

Müsstes du cafree und canone nicht der Var. action zuweisen?


Ciao, Frederic


Owman ... korrekt

es müsste natürlich lauten ...

Delphi-Quellcode:
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  { Sicherheitsabfrage ob Programm beendet werden soll }
  if MessageDlg('Programm beenden?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
    Action := caFree;
  end
  else
  begin
    Action := caNone;
  end;
end;
Immer nachm Urlaub xD ... Danke für die schnelle Antwort
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(

  Alt 5. Jan 2009, 20:40
im übrigen kannst du dir das caFree sparen da dies die Standardaction des Hauptforms ist:
Delphi-Quellcode:
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  { Sicherheitsabfrage ob Programm beendet werden soll } 
  if (MessageDlg('Programm beenden?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes) then
  begin
    Action := caNone;
  end;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#5

Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(

  Alt 5. Jan 2009, 20:52
Zitat von SirThornberry:
im übrigen kannst du dir das caFree sparen da dies die Standardaction des Hauptforms ist:
Delphi-Quellcode:
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  { Sicherheitsabfrage ob Programm beendet werden soll } 
  if (MessageDlg('Programm beenden?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes) then
  begin
    Action := caNone;
  end;
end;
Danke fürn Tipp

Hätt ich auch selbst drauf kommen können
Sascha
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#6

Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(

  Alt 5. Jan 2009, 21:03
Wäre für das ganze OnCloseQuery nicht angebrachter

Tobi
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(

  Alt 5. Jan 2009, 21:06
Ich habe auch immer das OnClose-Ereignis verwendet und habe darin nie Nachteile gesehen eher Vorteile da man einer größere Auswahl an möglichen Aktionen hat.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 23:19 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