Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Bestätigungsfenster beim Beenden öffnen.

  Alt 27. Jan 2010, 00:12
Zitat von Luckie:
Hast du es mal ausprobiert? Offensichtlich nicht, denn eine MessageBox ist immer modal.
Lass bitte solche falschen Mutmaßungen! Wozu soll das gut sein?

Natürlich habe ich es ausprobiert. Du hast Recht, wenn der Benutzer auf das Kreuzchen rechts oben klickt.
Wenn man aber unten in der Taskleiste mit der rechten Maustaste auf das Programmsymbol und dann auf Schließen klickt und wieder und wieder, gehen nacheinander mehrere Boxen auf. Die sind dann m.E. garnicht mehr so modal, zumal man sich dann den Dialog aussuchen kann ... Wie aus meiner vorhergehenden Nachricht ersichtlich wird, tritt das Phänomen nicht auf, wenn ich MessageDlg() verwende. Dann gibt es nur ein Fenster, das blinkt, wenn ich abermals wie beschrieben auf Schließen klicke.
Vielleicht liegt es auch an TurboDelphi.

Also formuliere ich meine Frage um:
Wie bekomme ich es hin, dass eine MessagBox nur einmal erscheint und (aus meiner Sicht) modal ist, wenn man einen entsprechenden Dialog über die Schließen-Option in der Taskleiste präsentiert bekommt?

Gruß, Alex

[edit]
Fehler gefunden:
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:=MessageBox(Application.Handle, 'Beenden?', 'Abfrage',
    MB_YESNO Or MB_ICONQUESTION) = IDYES;
end;
Es darf nicht nur Handle, sondern es muss Application.Handle heißen.
Alex Winzer
  Mit Zitat antworten Zitat