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 er

    IntelliSense: 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 er

    IntelliSense: 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).
    Vielleicht

    String^ 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 ?


Anmelden zum Antworten