Messagebox auswahl
-
Hallo!
Ich wollte gerne in mein Programm eine Funktion einbinden mit dem der Benutzer
sich eine Messagebox selber zusammenclicken kann , sprich welche Art, welche Buttons, welcher Text (per Editfeldeingabe).
Ich habe nur leider probleme die eingaben des Users per variable an die messagebox zu leiten.
Application->MessageBox(Meldung,Überschrift,Button|Typ);
-
...da wir alle mit deinem Projekt bestens vertraut sind, ist uns auch allen bekannt in welcher form deine Eingaben vorliegen... (o;
-junix
-
[ Dieser Beitrag wurde am 12.05.2003 um 17:42 Uhr von Hasm editiert. ]
-
[ Dieser Beitrag wurde am 12.05.2003 um 17:26 Uhr von Hasm editiert. ]
-
Mann soll einfach die Messagebox art per click auf checkboxen bestimmen ( Info , warning ...)
Ebenso die buttons (Ja nein , Ok ...)
Und in zwei Edit felder sollen dann Überschrift und Text eingegeben werden.
Dann noch ein click auf-> fertig und da iss die selbst erstellt messagebox!
-
Die Zeichen & die Buttons werden ja durch Integerwerte bestimmt.
kannst ja ´ne Abfrage machen welche Checkbox aktiviert is und dann den Integer setzen oder Buttons machen wo dann der Wert gesetzt wird.J0
-
schon mal geguggt, von welchem typ die erwarteten parameter der MessageBox sind? was für probleme hast mit den variablen?
-
Also hier der code mit einem Button zwei Radiobuttons und zwei Editfeldernauf der Form;
void __fastcall TForm4::Button1Click(TObject *Sender)
{
int Meldung, ueberschrift, Buttons, Typ;
Meldung = Edit1->Text;
ueberschrift = Edit2->Text;
if (RadioButton1->Checked = true)
{
Buttons = MB_OK;
}
if (RadioButton2->Checked = true)
{
Typ = MB_ICONQUESTION;
}
Application->MessageBox(Meldung,ueberschrift,Buttons| Typ);
}
Ich bekomme aber viele tolle fehlermeldungen!
-
int Meldung, ueberschrift, Buttons, Typ;
int ueberschrift? sieht bei dir ´ne messagebox so aus:
Application->MessageBox(154,125,0);
???
nein, er sieht wenn überhaupt so auf:Application->MessageBox("154","125",0);
du darfst keine Integers als überschrift benutzen sondern musst 'char*' benutzen. Dann lies dir Nochmla den Unterschied zwischen '=' und '==' durch.
Lies dir ausserdem den Unterschied zwischen Variablen durch, die ausserhalb der des button codes stehen und innerhalb.
wenn du das alles gelesen hast, wirst du alle fehler beheben können.
achja, und wie man einen 'AnsiString' zu einem 'char*' formatiert.J0
-
Original erstellt von Hasm:
Ich bekomme aber viele tolle fehlermeldungen!1.: Bitte immer die genauen Fehlermeldunegn mit angeben, sonst wird das helfen nur unnötog schwerer.
2.: Zur besseren Lesbarkeit bitte die Code-Tags benutzen.
3.: Bist du dir sicher, dass die Message und die Überschrift Integer sein sollen?
-
Probiere es doch mal so:
Lege ein paar RadioButtons (8 Stück) an (wie in deinem Beispiel) und schreibe es so:
String Meldung; String Ueberschrift; int Schaltflaeche; int Bild; //Definieren der Schaltflaechen: if (RadioButton1->Checked == true) Schaltflaeche = 0; if (RadioButton2->Checked == true) Schaltflaeche = 1; if (RadioButton3->Checked == true) Schaltflaeche = 2; if (RadioButton4->Checked == true) Schaltflaeche = 3; if (RadioButton5->Checked == true) Schaltflaeche = 4; if (RadioButton6->Checked == true) Schaltflaeche = 5; if (RadioButton7->Checked == true) Schaltflaeche = 6; // Ende Definition der Schaltflaechen //Definition des Bildes: if (RadioButton8->Checked == true) Bild = 16; if (RadioButton9->Checked == true) Bild = 32; if (RadioButton10->Checked == true) Bild = 48; if (RadioButton8->Checked == true) Bild = 64; //Ende Definition //Du brauchst also 8 RadioButtons. Sonst kriegste ein paar fehler. Meldung = Edit1->Text; Ueberschrift = Edit2->Text; Application->MessageBox(Meldung.c_str(),Ueberschrift.c_str(),Schaltflaeche + Bild);
Hope that helps!
-
Dann benennst du deine RadioButtons wie folgt:
RadioButton1: OK
RadioButton2: OK | Abbrechen
RadioButton3: Wiederholen | Abbrechen | Ignorieren
RadioButton4: Ja | Nein | Abbrechen
RadioButton5: Ja | Nein
RadioButton6: Wiederholen | Abbrechen
RadioButton7: Wiederholen | Abbrechen | WeiterRadioButton8: "X"
RadioButton9: "?"
RadioButton10: "!"
RadioButton11: "Info"Natürlich kannst du das noch schön mit Bildern machen. Aber nur, dass du da nen Überblick hast.
Übrigens: Konvertierung von String nach Char geht mit .c_str(). Bsp: Meldung.c_str()
-
Du programmierst doch sicher auch VisualBasic oder?
if CheckBox1.Checked = true then
End ifIn C++: ==
-
OK!
Jetzt bin ich aufgeflogen
Ich steige gerade von VB zu C++ um und tue mich etwas schwer mit der sprache (besoners mit den klammern für anfang und ende)
-
Naja warum nicht!
Jeder Profi von hier war auch mal Anfänger in C++.
-
lass den quatsch mit den zahlwerten bei der messagebox einstellung. kein schwein weiss in nem halben jahr mehr was 64 bedeutet. aussagekräftige defines (MB_ICONQUESTION, MC_ICONERROR, MB_YESNOCANCEL usw...) gibt es aus genau diesem grund!
-
Ja natürlich. Klar stimmt das. Ich habs halt nur noch nie so gelernt.
Ich konnte mir Zahlen schon immer besser als Abkürzungen merken.
-
Vielen vielen Dank für die hilfe!
Es funktioniert jetzt Einwandfrei.Nochmal Danke