Forms - bei klick auf Button Funktion aufrufen



  • Hmmmm, das versteh ich nicht so richtig...
    Ok, ich verstehe, was Du meinst, aber ich dachte es geht so:
    in der cpp Datei steht die Funktion. Die cpp Datei includiert ja auch die Forms, also ist nacher alles "in einer Datei".
    Das Forms wird ja auch in der cpp Datei aufgerufen...

    Wie würde man das ganze denn korrekt lösen ?
    Die Forms.h erst nach der Funktion includieren? Oder eine zusätzliche Datei erstellen, in die dann meine Funktion kommt und die dann in der Forms.h includieren?

    Aber zumindest verstehe ich jetzt, was da schief läuft, verstehe zwar nicht so ganz, warum der compiler das nicht "ausbügelt" aber ok, wird wohl einfach eine Regel sein.
    Wäre nett, wenn mir jetzt einer sagt, wie man damit umgeht.

    Achja, ich hab mir extra ne Lern DVD gekauft, und natürlich wird da gezeigt, wann Variablen sichtbar sind usw. aber dass das mit den Funktionen auch so ist wurde da nicht gesagt, und dann hatte ich da eben den Denkfehler *schäm

    Aber danke auf jeden Fall für die Hilfe (zu so später Stunde 😉 )



  • hi,

    Hier würde ich jetzt gerne ..... den Wert 3 in ein textfeld schreiben.

    geht mit

    .
    .
    .
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                     this->textBox1->Text = "3";
                 }
        };
    

    aber vll hilft Dir das etwas weiter

    #pragma endregion
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    				 if (textBox1->Text !=String::Empty)
    				 {
    					 String ^temp = textBox2->Text;
    					 textBox2->Text=textBox1->Text;
    					 textBox1->Text = temp;
    				 }
    				 else
    					 MessageBox::Show("es sind keine Daten in Box 1 vorhanden","Fehler");
    			 }
    	private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    				 textBox2->Text="kopieren";
    			 }
    	};
    }
    

    Du solltest aber den Rat von @Zeus ernst nehmen

    Mein Tipp: Lern C++ und kauf dir ein Buch. Oder
    Lern C#

    Computer und Compiler sind doof, die können nix, woher soll die Form-Datei(Cpp.File?) wissen, wo er nach der Testfunktion suchen soll und wehe du includierst nun die Cpp-Datei 😛

    mfg



  • Naja, das mit dem Lernen ist mir schon klar...
    Ich hab mir aus der Uni-Bib eine LernDVD (ob ein Buch so viel besser gewesen wäre...) geholt.
    Und da wird schon nach wenigen Stunden eine CLR Anwendung gemacht.
    Ich schäte mal, einfach, damit man das schonmal gesehen hat.
    Da kommt dann auch sehr schnell wie man beim Klick auf nen Button in einem Textfeld Text ausgeben kann.
    Das hat auch geklappt (this->textBox1->Text = "3";)
    Nächstes Kapitel waren dann aber eben Funktionen und Prozeduren. Erstmal wieder in einer Konsolenanwendung. Das hab ich gemacht (und eigentlich auch verstanden) und dann hab ich "in Eigeninitiative" versucht, das ganze in einer CLR Anwendung zu machen und kam eben auf die Probleme.

    Aber jetzt weiss ich ja, an was es lag.

    Hab mir überlegt, eine eigene Datei zu machen, in der ich dann meine eigenen Funktionen schreibe, die include ich ziemlic am Anfang, dann sollte das doch kein Problem mehr geben, oder ?
    Oder ist das ein "no-go"?

    Danke nochmal



  • Ah, mist, was vergessen:
    der Tipp wegen C# - ist das denn "besser" als C++ ? Oder warum sollte ich lieber das anschauen?



  • RuedigerCLR schrieb:

    der Tipp wegen C# - ist das denn "besser" als C++ ?

    ob es besser ist - keiner weis es ... außerdem ist hier C++/CLI - da sollte man wirklich nur verwenden wennman via C# auf die Windows-API zugreifen will ... unter Ankündigungen sollte da etwas von Jochen stehen

    Oder warum sollte ich lieber das anschauen?

    weil Du nur ein allg. C/C++ Verständniss-Problem hast was include angeht ... Dir fehlen grundlegende Grundlagen



  • Jetzt will ich dir mal den Rightway zeigen, übrigends würdest du es wissen, falls du C++ lernst 😛

    // My.h
    #pragma once
    
    namespace dummy_clr
    {
    	using namespace System;
    
    	System::Int32^ MyFunc();
    }
    
    // My.cpp
    #include "stdafx.h"
    #include "my.h"
    
    System::Int32^ dummy_clr::MyFunc()
    {
    	return 3;
    }
    
    // Form1.h
    #pragma once
    
    #include "my.h"
    
    namespace dummy_clr {
    
    	using namespace System;
    
    // ... 
    // Form.h Eventhandler
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    				 button1->Text = MyFunc()->ToString();
    			 }
    	};
    

    Und das mit VS2010 ohne IntelliSense 😞



  • RuedigerCLR schrieb:

    Ah, mist, was vergessen:
    der Tipp wegen C# - ist das denn "besser" als C++ ? Oder warum sollte ich lieber das anschauen?

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-263084.html



  • Hmmm, dann ist die DVD vielleicht doch nicht der richtige Einstieg...
    Oder ich hab nur zu schnell einfach irgendwelche Dinge übersprungen.
    Ich werd die Übungen jetzt mal noch durch machen, mal schauen, ich hoffe mal, ich lerne nix "falsches" und mir dann ein Einsteigerbuch suchen, bzw. mich umschauen, was so für den Einstieg empfohlen wird.

    Vielen Dank auf jeden Fall!



  • Wen du die DVD meinst wovon sprechst du?



  • Bei uns in der Uni-Bib gab es eine LernDVD, "Visual C++ - Einstig für Anspruchsvolle" heisst die und ist von "video2brain".
    Die hab ich mir geholt und angefangen durchzuarbeiten.
    Hatte nen ganz guten Eindruck gemacht, aber vielleicht ist es wirklich nicht so sinnvoll, so früh mit CLI Anwendungen anzufangen.
    Schon im 3. Kapitel wird damit ein Würfel gebastelt, das ist ein Kapitel vor Funktionen und Prozeduren, vielleicht hat mich das einfach zu schnell zu weit geführt (oder ich war zu ungeduldig 😉 )
    Aber wie gesagt, ich mach das jetzt noch fertig und schau mich dann nach einem Buch, oder einer anderen DVD oder sonstwas um (Empfehlungen?)


Anmelden zum Antworten