Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   application.Messagebox Problem (https://www.delphipraxis.net/180348-application-messagebox-problem.html)

Natcree 13. Mai 2014 17:46

application.Messagebox Problem
 
Habe ein problem mit der Messagebox wenn ich klicke speichert er wenn ich nein Klicke macht er es auch

Wo ist der Fehler ??

Delphi-Quellcode:
if application.MessageBox('Wollen Sie die Änderungen speichern ?','Hinweis',
MB_YESNO Or MB_ICONEXCLAMATION) = IDYES then
begin
Clientdataset1.Post;
form1.show;
image10.BringToFront;
form2.Close;
Leerefelder(true);
end;
end;

Uwe Raabe 13. Mai 2014 18:05

AW: application.Messagebox Problem
 
Vielleicht hilft ein
Delphi-Quellcode:
Clientdataset1.Cancel
im else-Zweig?

Perlsau 13. Mai 2014 18:06

AW: application.Messagebox Problem
 
Kann ich hier gerade nicht nachvollziehen (mit XE2). Das funktioniert tadellos:
Delphi-Quellcode:
procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
//  CanClose := Vcl.Dialogs.MessageDlg('Programm wirklich beenden?', mtConfirmation, [mbYes, mbNo], 0, mbYes) = mrYes;
  CanClose := Application.MessageBox('Programm wirklich beenden?','Achtung!',MB_YESNO Or MB_ICONEXCLAMATION) = IDYES;

end;

himitsu 13. Mai 2014 18:11

AW: application.Messagebox Problem
 
Zitat:

Zitat von Perlsau (Beitrag 1258782)
Kann ich hier gerade nicht nachvollziehen (mit XE2).

Jupp, aber es kommt ja auch darauf an WANN/WO dann gespeichert wird.
In dem gezeigten Code jedenfalls nicht. (da hätte es höchstens sein können, wenn z.B. ein Begin-End vergessen wurde)

Darum wurde auch der Hinweis mit dem Cancel gegeben, Welcher eine der vielen eventuellen Lösungswege darstellt.

Perlsau 13. Mai 2014 18:14

AW: application.Messagebox Problem
 
Ich hatte den TE so verstanden, daß sein Begin-End-Block auf jeden Fall durchlaufen wird, egal ob er auf Ja oder Nein klickt. Mit "speichern" meint er dann vermutlich das Post.

Natcree 13. Mai 2014 18:16

AW: application.Messagebox Problem
 
SO gehts auch nicht

Delphi-Quellcode:
begin
if application.MessageBox('Wollen Sie die Änderungen speichern ?','Hinweis',
MB_YESNO Or MB_ICONEXCLAMATION) = IDYes then
begin
Clientdataset1.post;
form1.show;
image10.BringToFront;
form2.Close;
Leerefelder(true);
end else
Clientdataset1.cancel;
form1.show;
image10.BringToFront;
form2.Close;
Leerefelder(true);
end;

Perlsau 13. Mai 2014 18:23

AW: application.Messagebox Problem
 
Wo kommt eigentlich das ominöse MB_ICONEXCLAMATION her? In der Delphi-Hilfe kann ich nichts davon finden. Nichtsdestoweniger wird bei mir das Programm beendet, wenn ich auf Yes bzw. Ja klicke, ansonsten nicht.

Was genau heißt "es geht nicht"? Wird immer der erste Begin-End-Block durchlaufen, egal was du anklickst?

Natcree 13. Mai 2014 18:28

AW: application.Messagebox Problem
 
wie kann ich ihm denn jetzt noch sagen wenn ich IDNO klicke soll er das andere machen?

Perlsau 13. Mai 2014 18:33

AW: application.Messagebox Problem
 
Ja was jetzt? :wiejetzt:

Du hast doch nur diese beiden Buttons in deiner Messagebox, oder? Wenn du auf Ja klickst, ergibt das MbYes, wenn du nicht auf Ja klickst, ergibt das nicht (not) MbYes. Daher würde ich die Empfehlung von Uwe Rabe befolgen. Im Übrigen hast du nicht auf meine konkrete Nachfrage, was die Pseudo-Fehlermeldung "geht nicht" genau bedeutet. Du mußt schon genaue Angaben machen, wenn wir dir helfen sollen.

Kleiner Hinweis: Arbeite doch bitte mit Einrückungen, so wird dein Code leichter lesbar und verständlicher.

p80286 13. Mai 2014 18:34

AW: application.Messagebox Problem
 
Zitat:

Zitat von Natcree (Beitrag 1258790)
wie kann ich ihm denn jetzt noch sagen wenn ich IDNO klicke soll er das andere machen?

Sei dóch so nett un versuch Perlsau's Frage zu beantworten, mich würde auch interessieren was da passiert. Und wenn Du Deinen Source ein wenig formatierst fällt es den meisten leichter ihn zu verstehen.
Und was Deine Frage angeht, neben
Delphi-Quellcode:
if..Then...else
gibt es ja noch
Delphi-Quellcode:
case
Aber bitte, bitte beantworte erst einmal die gestellten Fragen. (Die werden nicht grundlos gestellt!)

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz