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


von SKM (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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:
1
private: System::Void dateTimePicker1_ValueChanged(System::Object^ sender, System::EventArgs^ e);

(Funktionsrumpf durch Semikolon ersetzen)


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

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

von SKM (Gast)


Lesenswert?

Ich habe es jetzt danke.

von SKM (Gast)


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.

von Markus V. (Gast)


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

von SKM (Gast)


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?

von Markus V. (Gast)


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

von SKM (Gast)


Lesenswert?

Wie es immer heißt. Wer lesen kann ist klar im Vorteil.
Danke

von SKM (Gast)


Lesenswert?

Funktioniert jetzt

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.