AGB  ·  Datenschutz  ·  Impressum  







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

FormCloseQuery Prozedur aufrufen

Ein Thema von notam · begonnen am 27. Feb 2004 · letzter Beitrag vom 27. Feb 2004
Antwort Antwort
Benutzerbild von notam
notam

Registriert seit: 20. Dez 2003
50 Beiträge
 
Turbo Delphi für Win32
 
#1

FormCloseQuery Prozedur aufrufen

  Alt 27. Feb 2004, 14:15
Moin!

Trotz ausgiebiger Suche bin ich noch zu keiner Lösung gekommen. Um vor dem Beenden des Programms nachzufragen, ob der User wirklich das Programm beenden möchte frage ich ihn in einer Messagebox. Dies funktioniert mit der Prozedur FormCloseQuery wunderbar.

Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var MsgText, MsgCaption: string;
  MsgType, UserResp: integer;
begin
  MsgCaption := 'Beenden?';
  MsgText := 'Wollen Sie wirklich beenden?';
  MsgType := MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON1 + MB_APPLMODAL;

  UserResp := Application.MessageBox(PChar(MsgText), PChar(MsgCaption), MsgType);

  case UserResp of
    IDYES: canclose:=true;
    IDNO: canclose:=false;
  end;
end;
Jetzt möchte ich aber auch einen Button, zum Schließen des Programms mit dieser Messagebox.
Wir rufe ich jetzt in der ButtonClick Prozedur die FormCloseQuery Prozedur auf?
Muss sonst noch was in die ButtonClick Prozedur?

Wenn ich nämlich mit einem Button die Anwendung mit einem normalem form1.close; beenden lasse, wird danach nochmal die FormCloseQuery aufgerufen. Und zweimal den User zu fragen, finde ich dann ein bisschen übertrieben.

Hoffe, ich habe mich verständlich ausgedrückt
Manuel
Mein Name ist Hase, ich weiß von nichts.

Posting And You...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: FormCloseQuery Prozedur aufrufen

  Alt 27. Feb 2004, 14:22
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  Button: DWORD;
begin
  Button := Messagebox(Handle, 'Schließen?', 'Test', MB_YESNO);
  if Button = ID_YES then
    CanClose := True
  else
    CanClose := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;
Auch wenn ich über den Button schließe, kommt die abfrage nur einmal. Oder verstehe ich da jetzt was falsch?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
roderich
(Gast)

n/a Beiträge
 
#3

Re: FormCloseQuery Prozedur aufrufen

  Alt 27. Feb 2004, 15:16
oder die Kurzform davon

Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := Messagebox(Handle, 'Schließen?', 'Test', MB_YESNO) = ID_YES;
end;
Roderich (Oberlehrer )
  Mit Zitat antworten Zitat
Benutzerbild von notam
notam

Registriert seit: 20. Dez 2003
50 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: FormCloseQuery Prozedur aufrufen

  Alt 27. Feb 2004, 15:24


Warum einfach, wenn es auch kompliziert geht. Klar, wenn ich close; benutze wird FormCloseQuery abgefangen. Stimmt. Das ich da nicht selber drauf gekommen bin. Hab immer gleich die Fehlermeldung mit in die ButtonClick geschrieben und so nicht mehr dran gedacht es einfach wegzulassen. Danke nochmal!!!!
Manuel
Mein Name ist Hase, ich weiß von nichts.

Posting And You...
  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:15 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