Announcement

Collapse
No announcement yet.

C++ - Zahl aus Textbox in Variablen speichern (MS Visual Studio 2010)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C++ - Zahl aus Textbox in Variablen speichern (MS Visual Studio 2010)

    Hallo,

    ich habe ein kleines Problem. Ich wollte einen Kalkulator mit visual studio 2010 und c++ erstellen. Dazu wollt ich ne WindowsForm benutzen um mir ganz einfach ein Fenster zu erstellen. Das Soll ganz simpel gehalten werden. Nur 3 Textfelder in denen ich Zahlen eintrage. Dann noch ein paar weitere in denen ich nach rechnungen werte eintrage. die berechnungen sollen auf klicken eines buttons gemacht werden.
    Ich bin jetzt einfach mal so vorgegangen:

    1. Die Form mit Textboxen und Labeln erstellt.
    2. Button hinzugefügt
    3. Doppelklick auf den Button um in den Quelltext zu gelangen und direkt in einer Funktion zu sein, die bei klick auf den button erfolgt.
    4. Variabeln erstellt (nur integer)

    so jetzt soll das programm die werte aus den textfeldern in den entsprechenden variablen speichern. aber da das ja strings sind, weiß ich nich wie ich die strings als zahlen in eine variable des typs integer konvertieren kann.

    ich hoffe ihr könnt mir helfen hab noch nie mit windows forms gearbeitet und auch im internet dazu noch keine lösung gefunden :/

    Mit freundlichen Grüßen
    Nagamono

  • #2
    aber da das ja strings sind, weiß ich nich wie ich die strings als zahlen in eine variable des typs integer konvertieren kann.
    Verwende Parse bzw. TryParse deines Zieldatentyps.

    Comment


    • #3
      und wie genau benutz ich dieses parse? hab mir grad ein beispiel angeguckt wo mit "Convert" gearbeitet wird. ist das eine funktion die ich auch genau so benutzen kann?

      Comment


      • #4
        wenn ich Convert benutze, krieg ich den Fehler:

        error C3622: "System::Convert": Eine Klasse, die als "abstract" deklariert wurde, kann nicht instanziiert werden. d:\projekte\spcalc\Form1.h

        Comment


        • #5
          Eine Klasse, die als "abstract" deklariert wurde,
          Von einer abstrakten Klasse kann keine Instanz erzeigt werden
          Christian

          Comment


          • #6
            wär dann jemand so nett und könnte mir bei der lösung helfen? die fehlermeldung hab ich schon verstanden (also was das heißen soll), aber wie kann ich das dann jetzt machen?

            Comment


            • #7
              Wäre ja erstmal zu definieren, in was du tatsächlich programmierst
              C/C++ (dieses Forum hier)
              oder
              NET

              Des Weiteren: Wie sollte dir jemand helfen, wenn du deinen Code nicht zeigst?

              Denke allg. Routinen zum konvertieren lassen sich auch ergoogeln, wenn du deinen Code geheim halten willst.

              Für C/C++ wäre hier die Erläuterung http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/

              und

              http://www.cplusplus.com/reference/c.../cstdlib/atoi/
              Christian

              Comment


              • #8
                wär dann jemand so nett und könnte mir bei der lösung helfen? die fehlermeldung hab ich schon verstanden (also was das heißen soll), aber wie kann ich das dann jetzt machen?
                Auch zur Convert Klasse gibt es Hilfe in der Msdn. Mit Beispielen in C++/CLI!

                Comment


                • #9
                  Also ich programmiere in C++.
                  Ich habe nur eine ganz normale WindowsForm mit Microsoft Visual Studio 2010 erstellt. Dabei erstellt das Programm den Code ja selbst. Das heißt, das einzige was ich mache ist die Funktion für ein paar berechnungen zu schreiben die geschehen soll wenn ich auf einen button klicke.
                  Deswegen will ich nur eine allgemeine Routine haben.

                  Originally posted by Christian Marquardt View Post
                  Für C/C++ wäre hier die Erläuterung http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/
                  Hab mir das mal angeguckt. Dem Beispiel nach hab ich einfach in das Programm die "stdio.h" und die "stdlib.h" per "include" eingefügt und dann eine einfache definition der Variablen gemacht.

                  der Button wurde so erstellt:

                  // BtnOk
                  //
                  this->BtnOk->Font = (gcnew System:rawing::Font(L"BankGothic Md BT", 12, System:rawing::FontStyle::Bold, System:rawing::GraphicsUnit::Point,
                  static_cast<System::Byte>(0)));
                  this->BtnOk->Location = System:rawing::Point(237, 316);
                  this->BtnOk->Name = L"BtnOk";
                  this->BtnOk->Size = System:rawing::Size(85, 31);
                  this->BtnOk->TabIndex = 19;
                  this->BtnOk->Text = L"Ok";
                  this->BtnOk->UseVisualStyleBackColor = true;


                  hab dann in ner Funktion einfach das getan:

                  int metall,... ;
                  ...
                  metall = atoi (txtmet->Text);

                  Bekomme dann den Fehler:
                  error C2664: 'atoi': Konvertierung des Parameters 1 von 'System::String ^' in 'const char *' nicht möglich

                  Comment


                  • #10
                    Ok ich hab's jetzt so gemacht:

                    int metall,...;

                    metall = Convert::ToInt32 (txtmet->Text);

                    Krieg dabei jetzt immerhin keine Fehlermeldung. Wenn ich den Wert dann jetzt aber zur Probe mal in ein anderes Textfeld einfügen möchte, was ich jetzt so gemacht habe:

                    txttrans->Text = Convert::ToString (metall);

                    Dann erscheint im Programm, wenn ich in das Textfeld "txtmet" etwas eingebe, dann auf den Button drücke, nichts in dem Textfeld "txttrans". Oder geht das so wie ich das gemacht habe nicht?

                    Edit: Ok hab jetzt alles geschafft! Danke für die Hilfe
                    Zuletzt editiert von Nagatino; 04.04.2011, 22:26.

                    Comment

                    Working...
                    X