AGB  ·  Datenschutz  ·  Impressum  







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

application.Messagebox Problem

Ein Thema von Natcree · begonnen am 13. Mai 2014 · letzter Beitrag vom 14. Mai 2014
Antwort Antwort
Seite 1 von 2  1 2      
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#1

application.Messagebox Problem

  Alt 13. Mai 2014, 16:46
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;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#2

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 17:05
Vielleicht hilft ein Clientdataset1.Cancel im else-Zweig?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 17:06
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.155 Beiträge
 
Delphi 12 Athens
 
#4

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 17:11
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 17:14
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.

Geändert von Perlsau (13. Mai 2014 um 17:23 Uhr)
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 17:16
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;
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 17:23
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?
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 17:28
wie kann ich ihm denn jetzt noch sagen wenn ich IDNO klicke soll er das andere machen?
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#9

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 17:33
Ja was jetzt?

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.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 17:34
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 if..Then...else gibt es ja noch case Aber bitte, bitte beantworte erst einmal die gestellten Fragen. (Die werden nicht grundlos gestellt!)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:07 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