[C++] MessageBox Ja/Nein
-
Hey Leute!
Bin seit grade eben neu hier, habe gesehn, dass sich hier einige erfahrene Programmierer tummeln und da dacht ich mir, dass mir hier bestimmt geholfen werden kann
Vorweg: Ich bin Anfänger und lerne gerade in der Schule zu "programmieren"
Also zu meinem Problem:
Ich habe ein Programm zum Erstellen und Auflisten von FussballTipps. Anzugeben und auszuwählen sind Vorname/Nachname ( in je 2 Edit-Fenstern ), Tipp Gastmannschaft und Tipp Heimmannschaft ( in je 2 Edit-Fenstern ) und die Paarung der Mannschaften ( in einer ComboBox ). Zusätzlich gibt es einen Button, den man zum Speichern des Tipps in einem StringGrid betätigen kann.
Nun habe ich schon weitesgehend alles fertig programmiert und wollte das Programm, da ich es morgen abgeben muss, ein wenig aufpolieren und ein paar kleine Details einbauen.
Dann habe ich mir überlegt eine MessageBox mit einer Ja/Nein Abfrage für den Button einzubauen, ob man sich wirklich sicher sei, den Tipp abgeben zu wollen!Es wäre wirklich super, wenn mir jemand in irgendeiner Weise noch bis morgen erklärt kriegt wie ich solch eine Abfrage da zwischenschalte!
Um das Ganze ein wenig deutlicher zu machen hier ein Bild der graphischen Oberfläche und ein Auszug aus dem Quelltext des bisherigen Programms:
Bild:
http://img91.imageshack.us/my.php?image=fussballtippge9.jpg
Quelltext:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Fussball2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; AnsiString VName, NName; float TippH, TippG; int j,i=1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { StringGrid->Cells[0][0] = " Nr. "; StringGrid->Cells[1][0] = " - Tipper - "; StringGrid->Cells[2][0] = " - Paarung - "; StringGrid->Cells[3][0] = " - Tipp - "; for ( j=1; j<=51; j++ ) { StringGrid->Cells[0][j] = " "+FloatToStr(j)+"."; } } //--------------------------------------------------------------------------- void __fastcall TForm1::EditVNameChange(TObject *Sender) { VName = ( EditVName->Text ); } //--------------------------------------------------------------------------- void __fastcall TForm1::EditTippHChange(TObject *Sender) { TippH = StrToFloat ( EditTippH->Text ); } //--------------------------------------------------------------------------- void __fastcall TForm1::EditTippGChange(TObject *Sender) { TippG = StrToFloat ( EditTippG->Text ); } //--------------------------------------------------------------------------- void __fastcall TForm1::ButtonTippClick(TObject *Sender) { if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="Energie Cottbus - FC Schalke 04" ) { StringGrid->Cells[1][i] =" "+(VName)+", "+AnsiString (NName); StringGrid->Cells[2][i] =" Energie Cottbus - FC Schalke 04 "; StringGrid->Cells[3][i] =" "+FloatToStr(TippH)+" : "+FloatToStr(TippG); i=i+1; } if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="Werder Bremen - F.C. Hansa Rostock" ) { StringGrid->Cells[1][i] =" "+(VName)+", "+AnsiString (NName); StringGrid->Cells[2][i] =" Werder Bremen - F.C. Hansa Rostock "; StringGrid->Cells[3][i] =" "+FloatToStr(TippH)+" : "+FloatToStr(TippG); i=i+1; } if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="Bayern München - Eintracht Frankfurt" ) { StringGrid->Cells[1][i] =" "+(VName)+", "+AnsiString (NName); StringGrid->Cells[2][i] =" Bayern München - Eintracht Frankfurt "; StringGrid->Cells[3][i] =" "+FloatToStr(TippH)+" : "+FloatToStr(TippG); i=i+1; } if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="Bayer 04 Leverkusen - DSC Arminia Bielefeld" ) { StringGrid->Cells[1][i] =" "+(VName)+", "+AnsiString (NName); StringGrid->Cells[2][i] =" Bayer 04 Leverkusen - DSC Arminia Bielefeld "; StringGrid->Cells[3][i] =" "+FloatToStr(TippH)+" : "+FloatToStr(TippG); i=i+1; } if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="1.FC Nürnberg - VfB Stuttgart" ) { StringGrid->Cells[1][i] =" "+(VName)+", "+AnsiString (NName); StringGrid->Cells[2][i] =" 1.FC Nürnberg - VfB Stuttgart "; StringGrid->Cells[3][i] =" "+FloatToStr(TippH)+" : "+FloatToStr(TippG); i=i+1; } if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="Hamburg SV - Herta BSC Berlin" ) { StringGrid->Cells[1][i] =" "+(VName)+", "+AnsiString (NName); StringGrid->Cells[2][i] =" Hamburg SV - Herta BSC Berlin "; StringGrid->Cells[3][i] =" "+FloatToStr(TippH)+" : "+FloatToStr(TippG); i=i+1; } if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="Hannover 96 - Borussia Dortmund" ) { StringGrid->Cells[1][i] =" "+(VName)+", "+AnsiString (NName); StringGrid->Cells[2][i] =" Hannover 96 - Borussia Dortmund "; StringGrid->Cells[3][i] =" "+FloatToStr(TippH)+" : "+FloatToStr(TippG); i=i+1; } if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="VfL Bochum - VfL Wolfsburg" ) { StringGrid->Cells[1][i] =" "+(VName)+", "+AnsiString (NName); StringGrid->Cells[2][i] =" VfL Bochum - VfL Wolfsburg "; StringGrid->Cells[3][i] =" "+FloatToStr(TippH)+" : "+FloatToStr(TippG); i=i+1; } if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="Karlsruher SC - MSV Duisburg" ) { StringGrid->Cells[1][i] =" "+(VName)+", "+AnsiString (NName); StringGrid->Cells[2][i] =" Karlsruher SC - MSV Duisburg "; StringGrid->Cells[3][i] =" "+FloatToStr(TippH)+" : "+FloatToStr(TippG); i=i+1; } if ( ComboPaarung->Items->Strings[ComboPaarung->ItemIndex]=="" ) { Application->MessageBox("Achtung!\nKeine Paarung gewählt!","Fehlermeldung:",16+32); } } //--------------------------------------------------------------------------- void __fastcall TForm1::EditNNameChange(TObject *Sender) { NName = ( EditNName->Text ); } //---------------------------------------------------------------------------
Und hier schliesslich noch das Programm in einem WinRaR Archiv zum Donwloaden:
http://www.1-filehost.midnightirc.info/index.php?t=dl&hash=hzNC13nbvtC63nG9OrfzxGj2rKdxujC0
Freuen mich über jede Hilfe! Bitte heute abend noch
Gruß scummy
-
Mit der reinen WinAPI sähe das so aus:
if ( IDYES == MessageBox( FensterHandle, "Bist du dir sicher?", "Sicher?", MB_YESNO | MB_ICONQUESTION ) ) ; // Ja else ; // Nein
-
Hallo
Danke erstmal, aber es tut mir leid. Ich wüsste damit jetzt nichts anzufangen.
Also rein logisch müsste da ja auch beschrieben werden wann er was tun soll, sprich: bei "Ja" wird der Tipp gespeichert und bei "Nein" eben nicht.
Wär nett wenn du es ein wenig ausführlicher und evt. an einem Beispiel erklären könntest.
Bitte bitte
-
if ( IDYES == MessageBox( FensterHandle, "Bist du dir sicher?", "Sicher?", MB_YESNO | MB_ICONQUESTION ) ) { // Tipp speichern }
-
[C++ Fehler] Fussball.cpp(49): E2451 Undefiniertes Symbol 'FensterHandle'
Sorry aber ich kann dir eben nicht richtig Folgen.
Wär nicht schlecht wenn du mir sagen könntest wo ich das einbauen soll.
-
btw: Es gibt hier ein VCL-Forum.. C++ ist ne MessageBox nur wirklich nich..
-
So, um es mal klarzustellen:
dieser sourcecode, der auf sourceforge als ein anderer Programmtyp veröffentlicht wurde, den hast du abkopiert und es unbenannt. Das ist eine LÜGE, das du das selber geschrieben hast.
Außerdem solltest du FensterHandle(hwnd) verwenden, aber man sieht ja,dass du es abkopiert hast.
Das Original findet man unter Sourceforge -> Programme/Software: HLGD (und ne v nr)
mach mal was eigenes
-
Bitte was?!
Das Programm habe ich in der Schule gebastelt!
Ich bin da seit einigen Stunden dran.
Ich frage mich wirklich wie du darauf kommst. Das müsste ein zu großer Zufall sein, dass es ein Programm gibt, dass genau so aussieht.
Also tut mir Leid, aber das ist echt völliger Schwachsinn.
€: Achja, kannst du mir bitte mal einen Link geben?
Ich kanns immernoch nicht glauben... sowas hab ich schon lang nicht mehr erlebt...
-
So ich habs jetzt geschafft!
Vielen vielen Dank an Badestrand!
und @ der Besserwisser:
Sorry aber du brennst doch oder?
Gib mir erstmal einen Link, dann will ich mal sehen wie ähnliche dieses Programm meinem ist. Das kann einfach nicht stimmen. Unglaublich so eine Anschuldigung...Gruß scummy
-
Dieser Thread wurde von Moderator/in CStoll aus dem Forum C++ in das Forum VCL (C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo,
VCL-gemäß nimmt man hier statt MessageBox besser MessageDlg.
Aus der BCB6-Hilfeif (MessageDlg("Datensatz aktualisieren?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) = mrYes) { } else { }
[edit]Bei deinem Tipp hast du ja zum Glück schön daneben gelegen. [edit]
-
mir fällt grad auf das Braunsteins antwort geradezu nach FAQ aufnahme schreit ... da hab ichs nämlich NICHT gefunden
-
Ja genau.Nehmt die komplette BCB Hilfe mit in die FAQ.
-
danke für deinen geistreichen kommentar .... mal abgesehen davon das in der BCB hilfe steht das die syntax für OK button
TMsgDlgButtons() << mbOK
lautet .... (das war ironisch)
da steht nur so n dämlicher spruch in meiner hilfe von wegen "verwenden sie die entsprechende Syntax" die leider in der hilfe nirgendwo scheinbar erwähnt wird, bzw. vielleicht mit einem unsinnigen suchbegriff verknüpft ist den ich bis heute noch nicht rausgefunden habe .... wenn ich so etwas schreibe werd ich meinen grund dafür haben, denn ich schaue grundsätzlich immer erst in die hilfe
BCB hilfe ist zwar sehr gut aber auch die haben nur "menschen" geschrieben
-
Ja mit der Hilfe muss man sich auch beschäftigen.
Die Hilfe springt dich nicht an, sondern du musst dich mit ihr beschäftigen, damit du verstehst wie sie aufgebaut ist.Erstmal ist es ja auch kein TMsgDlgButton den du "aufrufst".
Sondern ein TMessageDlg.
Da steht dann auch in der Hilfe zum Dialog was du alles mit ins Dialogfenster reinschieben kannst.Aus der Hilfe TMsgDlgButtons:
Wert Bedeutung
mbNone Gibt keine bestimmte Schaltfläche an (wenn keine Standardschaltfläche fesgelegt werden soll)
mbOk Eine Schaltfläche mit dem Text "Ok"
mbCancel Eine Schaltfläche mit dem Text "Cancel".
mbYes Eine Schaltfläche mit dem Text "Ja".'
mbNo Eine Schaltfläche mit dem Text "Nein".'
'mbAbort Eine Schaltfläche mit dem Text "Abbruch".
mbRetry Eine Schaltfläche mit dem Text "Wiederholen".
mbIgnore Eine Schaltfläche mit dem Text "Ignorieren".
-
da steht aber nicht die "syntax" wie man die buttons im aufruf einbindet :p irgendwoanders hab ich schonmal erwähnt das ich um die zeit meines posts kein kaffee hatte sry für eingeflossene feindseligkeiten