mbYesNo-MessageBox: Ereignis abfragen
-
@ BigNeal: Die Funktionsweise einer einfachen MessageBox ist mir schon bekannt. Was ich nicht weiß ist zur Verdeutlichung das Reagieren auf die unterschiedlichen Rückgabewerte. Die einzelnen Rückgabewerte kenne ich ebenfalls: Das sind allgemein für Schaltflächen:
IDOK = 1
IDCANCEL = 2
IDABORT = 3
IDRETRY = 4
IDIGNORE = 5
IDYES = 6
IDNO = 7Was kann ich allerdings mit diesen Rückgabewerten in einer if-Abfrage vergleichen? Komme dort nicht wirklich weiter.
-
Hallo
in der Hilfe des BCB ist ein Beispiel
(MessageBox -> Besipiel)Schau dir das mal an
und wenn du weitere Fragen hast melde dich nochmalMfG
Klaus
-
In der Hilfe des BCB ist nur ein einfaches Beispiel einer MessageBox dargestellt. Dort habe ich natürlich schon direkt am Anfang nachgeschaut.
Mein Problem ist nicht das Erstellen der MessageBox sondern das Abfragen hinterher welcher Button (bei der MessageBox mbYesNo: Button "Yes" oder Button "No") gedrückt wurde.
Die MessageBox erstelle ich wie folgt:Application->MessageBox("Möchten Sie jetzt das neue Jahr anlegen?","Bestätigung?",MB_YESNO + MB_ICONQUESTION);
-
Du musst doch nur den Rückgabewert auswerten.
-
Welche BCB-Version verwendest Du denn? In meiner Version (BCB6 Enterprise) kann man der Hilfe entnhemen, dass die Methode
TApplication::MessageBox() einen Rückgabewert vom Typ int hat, den man mit Konstanten (IDOK, IDCANCEL usw.) abprüfen kann.
Der Rückgabewert entspricht dem jeweils vom Benutzer gedrückten Button. Das stand allerdings auch schon so ähnlich im Beitrag
von BigNeal.Gruß,
Alexander
-
hilft dir soetwas weiter?
if(Application->MessageBox("Would you like to play with Earth?", "Hello Earthling", MB_OKCANCEL) == IDOK) {...}
-
Klar, ich muß "nur" den Rückgabewert auswerten. Damit hapert es allerdings.
Habe beispielsweise folgendes ausprobiert:if (MessageBox != IDYES)
{ ...}oder
if (MessageBox != 6)
{ ...}Es ist wahrscheinlich falsch wie ich den Rückgabewert der MessageBox abrufen will, oder?
-
Nun stell dich doch nicht so an!
int result = MessageBox(...); switch (result) { case ID_OK : mach_dies(); break; case ID_CANCEL : mach_das(); break; ... }
-
@BigNeal: Richtig, das hilft!
Hab blöderweise versucht nach Erscheinen der MessageBox noch irgendwas auszuwerten, was logischerweise auch net funktioniert hat!
Vielen Dank jedenfalls für die prompte Hilfe!!!
-
teste das mal.. und wenn es immer noch nicht klapt, sag mal genau was nicht klapt
void __fastcall TForm1::Button1Click(TObject *Sender) { if(Application->MessageBox("Wähle", "RückgabeTest", MB_YESNO) == IDYES) ShowMessage ("Yes"); else ShowMessage ("!Yes"); }[edit] wohl zu spät... [/edit]