Anfänger braucht hilfe.



  • Hallo liebe Programmierer,

    ich bin noch ziemlich neu im Programmieren und habe mich heute an meiner ersten Windows.Forms Anwendung versucht. Ich benutze "Visual c++ 2008 express edition". Ich versuche eine Art Rechner zu entwickeln. Ich habe 2 Eingabe Fenster eingebaut. Der User soll in beide Fenster zahlen eingeben. Das programm teilt dann die erste Eingabe durch die Zweite. Das ganze sieht mittler weile so aus:

    http://img3.fotos-hochladen.net/thumbnail/kdprogrammfv9cs68kb_thumb.jpg

    Wie kann ich machen, dass die Eingabe der "Kills" durch die Eingabe der "Deaths" geteilt wird?

    ich habe mir irgendwie sowas in der Art vorgestellt:

    System::Windows::Forms::MessageBox::Show("Ihre Ratio ist: ")
    

    Schonmal vielen Dank.
    LG Lucas



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hey,
    ich kenne mich leider nicht dirket mit MS Visualstudio aus, Aber vom Prinzip geht das ganze so:
    Du legst drei float Variablen kills, death, kdrate.
    Anschließend weist du den Variablen den Wert der entsprechenden Textbox zu.
    Im nächsten Schritt weist du kdrate kills/death zu.
    Die Variable gibst du dann in der MessageBox aus.

    Achso den Wert der Textboxen musst du noch von String zu float umwandeln.
    Ich weis nicht, ob ms visualstudio eigene funktionen dazu zur Verfügung stellt.
    Wenn nicht google doch mal nach der Klasse sstream.

    Ich hoffe ich konnte dir ein wenig weiter helfen 😉

    ZIF



  • Achso solltest du nur Probleme bei der zuweisung haben guck dir das doch mal an:
    http://msdn.microsoft.com/de-de/library/ff429412.aspx



  • Ok, erst mal vielen Dank für die schnelle Antwort. Ich bin inzwischen einen Schritt weiter. Leider ist erneut ein Problem aufgetreten: Wenn ich das Programm starte, in jede TextBox Zahlen eingebe, und auf "KD berechnen" klicke, öffnet sich das Fenster mit "Deine Ratio ist: " Aber es wird kein Ergebnis angezeigt. Mein Programm sieht folgendermaßen aus:

    double kills = double::Parse(textBox1->Text);
    			 double deaths = double::Parse(textBox2->Text);
    
    			 double ergebnis = kills / deaths;
    
    			 #undef MessageBox
    			 MessageBox::Show(System::String::Format("Ihre Ratio ist: ", ergebnis));
    

    Was muss ich noch tun damit der Rechner funktioniert? Bei Bedarf kann ich auch den Gesamten Code posten.

    LG Lucas



  • kann es sein das du dir den Code aus dem Netz zusammen "puzzlest" ohne ihn zu verstehen? Es kommt mir so vor weil du sehr grundlegende Fragen hast, nichtmal selbst in der lage bist in ansätzen zu schauen ob der Code richtig ist, aber dann rückgabewerte von Funktionen als Parameter übergibst:

    double kills = double::Parse(textBox1->Text);
        double deaths = double::Parse(textBox2->Text);
    
        double ergebnis = kills / deaths;
    
        #undef MessageBox //Was macht das hier eigentlich???
        System::String^ myString = System::String::Format("Ihre Ratio ist: {0}", ergebnis);
        MessageBox::Show(ergebnis);
    

    Ich denke das sollte es beheben. Als kleinen Hinweis möchte ich noch sagen:
    Wenn mal was nicht geht, versuch jeden Wert als einzelne Variable zu machen, dann kannst du schön mit den Debugger prüfen ob die Variable richtig gesetzt wurde oder der Fehler woanders herkommt. Zusätzlich solltest du dir bei Funktionen wie System::String::Format in der Doku anschauen was das ganze genau macht. Das {0} ist dort ein platzhalter in dem dann die Zahl eingefügt wird. Du kannst damit auch mehrer Variablen einfügen. Z.B. geht auch sowas

    System::String^ myString = System::String::Format("{0} {2} {1}: {3}", "Ihre", "Ist", "Ratio", ergebnis);
    

    Alternativ hättest du im CLI auch mit '+' die Strings verketten können

    System::String^ myString = "Ihre Ratio Ist:" + ergebnis->ToString();
    

    Kann sein das in meinen Code noch ein paar Fehler enthalten sind. Ich arbeite meist mit C# aber das ist ja untereinander Kompatibel solange man mit CLI Arbeitet 😉



  • Es gibt ein define von MessageBoxA bzw. MessageBoxW (je nach Unicode oder nicht) nach MessageBox.

    #undef MessageBox

    Hebt dieses define auf, denn wir wollen ja nicht das auf einmal

    MessageBoxA::Show(ergebnis);
    

    oder

    MessageBoxW::Show(ergebnis);
    

    dasteht.



  • Ok, ich merke, dass ich mich einfach zu früh an Windows Forms gewagt habe. Dann mach ich erst mal mit Konsolen anwendungen weiter :p . Danke an alle 🙂


Anmelden zum Antworten