mikrocontroller.net

Forum: PC-Programmierung Visual C++ 2010, TFORM, Ereignishandler wird in header Datei genertiert


Autor: SKM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich bin gerade dabei eine kleine TForm mit Visual C++ zu erstellen. Ich 
habe da nun eine Frage.

Ich habe dazu zunächst einen Button auf meine TFORM.h[Entwurf] gezogen. 
Ich möchte nun eine Handle für diesen Button erzeugen. Dafür mach ich 
eine Doppelklick auf meine Button Element und es öffnet sich die 
Funktion:

private: System::Void dateTimePicker1_ValueChanged(System::Object^ 
sender, System::EventArgs^  e) {
     }

Was ich jetzt nicht verstehe, wieso wird diese Funktion in der Header 
datei erzeugt nun nicht im cpp File?

Ich habe auch versucht die Funktion zu verschieben, in die cpp Datei. 
Das funktionert allerdings nicht.

Ist das eine Einstellungsache?
Oder muss ich meinen Code in die Header-datei schreiben?
Oder habe ich die Funktion nur an die falsche Stelle geschrieben in der 
cpp Datei?

Könnt ihr mir einen Tipp geben?
Danke

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist nicht C++. Das ist die Neuauflage der MS-Perversion "Managed 
C++", die jetzt als "C++/CLI" auf das .Net-Geraffel draufgepfropft wird.

Mit C++ hat das nicht viel zu tun.

MS hat sehr merkwürdige Vorstellungen, wo Code wie Dein Ereignishandler 
(nicht: "handle"!) unterzubringen ist.

> Ich habe auch versucht die Funktion zu verschieben, in die cpp Datei.
> Das funktionert allerdings nicht.

Hast Du das so gemacht?

Headerdatei:
private: System::Void dateTimePicker1_ValueChanged(System::Object^ sender, System::EventArgs^ e);

(Funktionsrumpf durch Semikolon ersetzen)


Implementierung
System::Void KLASSE::dateTimePicker1_ValueChanged(System::Object^ sender, System::EventArgs^ e) 
{
}

(Natürlich anstelle von "KLASSE" den Namen Deiner Klasse eintragen!)

Autor: SKM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es jetzt danke.

Autor: SKM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe mich geirrt.
Funktioniert doch noch nicht.

Nochmal:

Header Datei:

private: System::Void button1_Click(System::Object^  sender, 
System::EventArgs^  e) {

       }

Implementierung:

void button1_Click(System::Object^  sender, System::EventArgs^  e) {
         Application::Exit();
       }

Das läßt sich Fehlerfrei ausführen. Leider funktioniert das Klicken auf 
den Button nicht.

Autor: Markus V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi SKM,

lies doch mal den Post von Rufus von 9:33 Uhr GENAU durch. Wo liegt der 
Unterschied zu Deiner Variante? Speziell der Teil, der in der 
Header-Datei stehen muß ist interessant...

Gruß
Markus

Autor: SKM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Semikolon fehlt bei mir.
Aber den Code in der Header Datei hat Visual C++ erzeugt nach dem 
Doppelklick auf den Button.

Oder was ist noch anders?

Autor: Markus V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast doch selbst geschrieben, dass Du den Code vom Header-File in das 
cpp-File verschieben möchtest.

In Rufus Post ist angegeben, wie der Code im Headerfile GENAU auszusehen 
hat, nämlich mit Semikolon anstelle des Funktionsrumpfes {}. Die 
Implementierung im cpp-File enthält dann wiederum den Funktionsrumpf mit 
{} anstelle des Semikolons.

Gruß
Markus

Autor: SKM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie es immer heißt. Wer lesen kann ist klar im Vorteil.
Danke

Autor: SKM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert jetzt

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.