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 2 von 2     12   
Benutzerbild von Uwe Raabe
Uwe Raabe

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

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
Natcree

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

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 18:38
Zitat:
Wo kommt eigentlich das ominöse MB_ICONEXCLAMATION her?
http://www.functionx.com/delphi/msgboxes/messagebox.htm

Zitat:
Was genau heißt "es geht nicht"? Wird immer der erste Begin-End-Block durchlaufen, egal was du anklickst?
Wenn ich nein klicke soll er abrechen und fensterschliessen.
  Mit Zitat antworten Zitat
Natcree

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

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 18:42
danke es hat an dem fehlenden begin gelegen.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#14

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 18:44
Okay, das mit dem MB_ICONEXCLAMATION hat sich ja nun geklärt, damit wird also ein Warn-Icon angezeigt.

Alles das, was dein Programm ausführen soll, wenn du Ja klickst, kommt in den ersten Begin-End-Block, der ausgeführt wird, wenn das Resultat MbOk ist. Dagegen kommt alles das, was dein Programm ausführen soll, wenn du nicht Ja klickst, in den zweiten Begin-End-Block, den sog. Else-Zweig. Wo ist das Problem?
  Mit Zitat antworten Zitat
DateTimeError
(Gast)

n/a Beiträge
 
#15

AW: application.Messagebox Problem

  Alt 13. Mai 2014, 21:40
Hier was zum Testen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if MessageBox(Handle, 'Message', 'Caption', mb_YesNo or mb_IconExclamation or
    mb_DefButton1)
    = id_Yes then
  begin
    MessageBox(Handle, 'JA angeklickt', 'Caption', mb_Ok or mb_DefButton1);
    exit
  end;
  MessageBox(Handle, 'NEIN angeklickt', 'Caption', mb_Ok or mb_DefButton1)
end;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: application.Messagebox Problem

  Alt 14. Mai 2014, 01:28
danke es hat an dem fehlenden begin gelegen.
Eigentlich hat es an dem fehlenden Cancel gelegen. Beim Navigieren per Next oder Prev wird nämlich implizit ein Post ausgeführt, wenn das DataSet im Edit-Modus ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#17

AW: application.Messagebox Problem

  Alt 14. Mai 2014, 08:15
BTW:
Zitat:
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;
-->
Delphi-Quellcode:
if application.MessageBox('Wollen Sie die Änderungen speichern ?','Hinweis', MB_YESNO Or MB_ICONEXCLAMATION) = IDYes then begin
  Clientdataset1.post;
end
else begin
  Clientdataset1.cancel;
end;
form1.show;
image10.BringToFront;
form2.Close;
Leerefelder(true);
Wer ganz faul ist (so wie ich), der kann dann auch begin und end weglassen, sofern er ordentlich einrückt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: application.Messagebox Problem

  Alt 14. Mai 2014, 08:54
Meine Einrückungen (per Code-Formatter) sehen so aus
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;
oder die andere Variante
Delphi-Quellcode:
if application.MessageBox('Wollen Sie die Änderungen speichern ?','Hinweis', MB_YESNO Or MB_ICONEXCLAMATION) = IDYes
then
  begin
    Clientdataset1.post;
  end
else
  begin
    Clientdataset1.cancel;
  end;
form1.show;
image10.BringToFront;
form2.Close;
Leerefelder(true);
oder eben ohne die (jetzt nicht mehr benötigten begin end Blöcke)
Delphi-Quellcode:
if application.MessageBox('Wollen Sie die Änderungen speichern ?','Hinweis', MB_YESNO Or MB_ICONEXCLAMATION) = IDYes
then
 Clientdataset1.post
else
  Clientdataset1.cancel;
form1.show;
image10.BringToFront;
form2.Close;
Leerefelder(true);
Der Orginal-Code hätte mit der Formatierung so ausgesehen:
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;
In Kombination mit dem CnPack schreien einen solche Fehler direkt an
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:33 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