Variable in ->Text ?
-
Tagchen,
Ich habe gleich mehrere Beispiele, da ich nicht wirklich weiß, was ich Googlen muss um zum richtigen Ergebnis zu kommen, ich hoffe irgendwer versteht hier, wie ich das meine.
Erstmal, Code schnipsel:if ( listBox1->SelectedItem == "Addieren ( + )" ) { r = a + b; label1->Text = System::Convert::ToString(r);
Das klappt alles ganz wunderbar,
aber ich möchte jetzt, dass die komplette Rechnung mit Ergebnis in r label1 wiedergegeben wird.
Also wenn z.b. a = 5 ist, b = 5 ist, wäre r natürlich 10...
Und dann soll in label1 auch stehen: 5 + 5 = 10
und nicht nur "10".Zweite und eigentlich selbe frage (wieder erst der Code schnipsel):
string newver; ifstream uversion("C:\\Users\\Luca\\Desktop\\Privat\\Scripting\\Rechner\\uversion.txt"); if (uversion.is_open()) { while (getline(uversion, newver)) { if (newver == "1.90.2912") { uversion.close(); Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Application::Run(gcnew Form1()); return 0; } else { uversion.close(); String^ message = "Eine neue SAMP Rechner () Version ist verfügbar.\n\nMöchten Sie die Webseite zum herunterladen besuchen ?"; String^ caption = "SAMP Rechner: Update"; MessageBoxButtons buttons = MessageBoxButtons::YesNo; MessageBoxIcon icons = MessageBoxIcon::Information; System::Windows::Forms::DialogResult result; result = MessageBox::Show(message, caption, buttons, icons); if (result == ::DialogResult::Yes) { System::Diagnostics::Process ^p = gcnew System::Diagnostics::Process(); p->StartInfo->FileName = getDefaultBrowser(); p->StartInfo->Arguments = "http://www.google.de/"; p->Start(); }
Wie füge ich bei
String^ message = "Eine neue SAMP Rechner () Version ist verfügbar.\n\nMöchten Sie die Webseite zum herunterladen besuchen ?";
zwischen den () die Variable "newver" ein ?
Das war es schon, ich denke es gibt dafür eine ganz einfache Lösung deswegen tut mir die Frage jetzt schon etwas leid. ^^
-
Strings addieren (hässlich)
String^ message = "Eine neue SAMP Rechner ("+newvar.toString()+") Version ist verfügbar.";
Allgemeiner String::Format nehmen. Dann kannste alles machen, was Du mit Console::WriteLine auch gewohnt bist.
String^ message = String::Format("Eine neue SAMP Rechner ({0}) Version ist verfügbar.",newvar);
-
Wenn ich das mache,
sagt erIntelliSense: Keine Instanz von Überladene Funktion "System::String::Format" stimmt mit der Argumentliste überein. Argumenttypen sind: (const char [52], std::string)
oder
IntelliSense: "class "std::basic_string<char, std::char_traits<char>, std::allocator<char>>"" hat keinen Member ""toString"".
Also habe ich folgendes gemacht ->
char newver[1]; System::String^ newvar = gcnew System::String(newver);
Das funktioniert dann zwar bei String::Format, aber er spuckt dann einfach irgendwelche Zeichen aus, nicht die Version.
Bei tostring meint erIntelliSense: Der Ausdruck muss einen Klassentyp aufweisen.
-
Viele kleine Fehlerchen, sorry.
newvar.ToString() wird große geschrieben, falls es existiert. Convert::ToString(newvar) wäre auch ein Kandidat.String^ message = String::Format("Eine neue SAMP Rechner ({0}) Version ist verfügbar.",newvar); würde gehen.
Aaber, das hatte ich voll übersehen, Du mischt ja System::String und std::string (würde ich versuchen zu meiden).
VielleichtString^ message = String::Format("Eine neue SAMP Rechner ({0}) Version ist verfügbar.",gcnew String(newvar.c_str()));
-
String^ message = String::Format("Eine neue SAMP Rechner ({0}) Version ist verfügbar.", gcnew String(newver.c_str()));
Funktioniert super, danke !
Ich bin noch relativ "neu", deswegen lasse ich mich noch schnell verwirren und möchte nur das es läuft... ^^
Hat noch jemand eine Lösung für mein erstes Beispiel mit ->Text ?