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
Natcree

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

application.Messagebox Problem

  Alt 13. Mai 2014, 17: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.601 Beiträge
 
Delphi 12 Athens
 
#2

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 18: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, 18: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
44.315 Beiträge
 
Delphi 12 Athens
 
#4

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 18: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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 18: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 18: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, 18: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, 18: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
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 18:34
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;
Sicher nicht! Du solltest mal ordentlich einrücken, dann siehst du vielleicht das fehlende begin .

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
else begin
  Clientdataset1.cancel;
  form1.show;
  image10.BringToFront;
  form2.Close;
  Leerefelder(true);
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 18:26 Uhr.
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