Autor Beitrag
FrEEzE2046
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 27.05.09 13:03 
Hallo,

ich bekomme immer die Fehlermeldung "unerwartetes Token vor ';'" und kann mir nicht richtig erklären, woran das liegen soll.

Das ganze ist innerhalb einer Klasse (Osziloskop). Es soll das per Property referenzierte PictureBox-Steuerelement ein Ereignis innerhalb meiner Klasse zugewiesen bekommen ...


Bitte um Hilfe

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
  property System::Windows::Forms::PictureBox^ DrawPlane
  {
    void set( System::Windows::Forms::PictureBox^ Plane )  
    { 
      this->_draw_plane = Plane; 
      this->_draw_plane->Paint += gcnew System::Windows::Forms::PaintEventHandler( this, &Osilloskop::Osilloskop_Paint );         
    }
    }

void Osilloskop_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e);


Der Fehler tritt bei der Event-Routine auf. Lasse ich den Parameter PaintEventArgs weg, dann geht es komischerweise (nur dann eben die Event-Registrierung nicht)


PS: Ist zwar C++/CLI, aber der Fehler hängt ja mit der .NET-Klasse zusammen


Moderiert von user profile iconKha: Topic aus WinForms verschoben am Mi 27.05.2009 um 13:37
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 27.05.09 13:36 
:welcome:

user profile iconFrEEzE2046 hat folgendes geschrieben Zum zitierten Posting springen:
Ist zwar C++/CLI, aber der Fehler hängt ja mit der .NET-Klasse zusammen
:gruebel: ? Das ist doch wohl ein Compilerfehler, da werden dir hier nicht viele helfen können :nixweiss: .

_________________
>λ=
FrEEzE2046 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 27.05.09 13:42 
Naja, es ist halt so eine Sache.

Ist es denn überhaupt möglich, was ich hier mache?
Ich habe einen internen Pointer auf eine PictureBox. Wenn diese (per Property) zugewiesen wird, soll die untenstehende Funktion (Oszilloskop_Paint) dem Paint-Event der PictureBox zugewiesen werden. Geht das überhaupt so? Ich bin mir nicht sicher, nicht dass dort der Fehler liegt.

Btw. Ich benutze das Visual Studio 2008 TS-Edition
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 27.05.09 13:49 
Ich kann mir zwar kein Szenario vorstellen, in dem eine PictureBox-Property wirklich Sinn macht :zwinker: aber theoretisch - warum nicht?

Naja, versuche ich mal halt mal am C++/CLI-Raten: Warum besitzt denn der Eventhandler keinen Body? Außerdem sieht der mir nach einer Instanzmethode, Osilloskop::Osilloskop_Paint aber nach dem Verweis auf eine statische Methode aus.

_________________
>λ=
FrEEzE2046 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 27.05.09 13:58 
Also, dass ganze ist tatsächlich innerhalb einer Klasse (Oszilloskop).

Mein Vorhaben:
Die Klasse Oszilloskop hat Methoden zur Berechnung der Ablenkempfindlichkeit eines Kathodenstrahles (spielt eigentlich keine Rolle^^). So, nun habe ich ein Property, dass einen Verweis auf eine PictureBox enthält, weil auf dieser dann die Parabelbahn der Elektronen gezeichnet wird - soweit klar?

Ich suche nach einer Möglichkeit dies zu realisieren.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 27.05.09 14:12 
Dann würde ich die Klasse von der PictureBox gar nichts wissen lassen, sondern lediglich eine Paint-Methode mit System.Drawing.Graphics-Parameter implementieren :) .

_________________
>λ=
FrEEzE2046 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 27.05.09 14:14 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Dann würde ich die Klasse von der PictureBox gar nichts wissen lassen, sondern lediglich eine Paint-Methode mit System.Drawing.Graphics-Parameter implementieren :) .


Ja, soweit bin ich mittlerweile ja auch, aber grundsätzlich:

Die Ableitung von System::Windows::Forms::Form ist referenziert doch auch ihre events, obwohl die Klasse noch keine Instanz hat ...
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 27.05.09 14:28 
Öhm, nö ;) .
ausblenden C#-Quelltext
1:
2:
3:
4:
    private void InitializeComponent()
    {
      [...]
      this.pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);

_________________
>λ=
FrEEzE2046 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 27.05.09 14:34 
Doch^^

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
void InitializeComponent(void)
{
     [...]
     this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
}



Ich sehe da jetzt keinen zu großen Unterschied zu meiner Variante.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 27.05.09 14:43 
Achso, jetzt sehe ich es erst: In /CLI werden Delegate.Target und Delegate.Method anscheinend getrennt übergeben. Dein erster Code war also doch richtig, aber das stimmt trotzdem nicht:
user profile iconFrEEzE2046 hat folgendes geschrieben Zum zitierten Posting springen:
Die Ableitung von System::Windows::Forms::Form ist referenziert doch auch ihre events, obwohl die Klasse noch keine Instanz hat ...

_________________
>λ=
FrEEzE2046 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 27.05.09 14:52 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Achso, jetzt sehe ich es erst: In /CLI werden Delegate.Target und Delegate.Method anscheinend getrennt übergeben.


Ja, sry. Ich wusste nicht, dass das in C# anders ist. Aber was genau macht die Ableitung von Form denn nun anders, als ich in meiner Klasse. Im Grnud will ich ja das selbige erreichen.

Hast du eine Idee?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 27.05.09 16:58 
Hab doch geschrieben, dass dein Code richtig sein sollte ;) . Sieht ja wirklich genau gleich aus.
Aber ich dachte, dass der Fehler sowieso nicht dort, sondern bei der Definition der Methode auftritt?

_________________
>λ=
FrEEzE2046 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 27.05.09 17:49 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Hab doch geschrieben, dass dein Code richtig sein sollte ;) . Sieht ja wirklich genau gleich aus.
Aber ich dachte, dass der Fehler sowieso nicht dort, sondern bei der Definition der Methode auftritt?


Der tritt schon bei der Deklaration der Methode auf. Das da natürlich der Body fehlt ist klar, aber auch wenn der da ist, bleibt der Fehler bestehen ... ich werd daraus nicht schlau
FrEEzE2046 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 27.05.09 18:28 
Ich bein Vollidiot. Der Namespace, in den ich die Klasse geschrieben habe, hieß exakt genau so wie die Header-Datei selbst. Das hat den Fehler verursacht ...

Trotzdem danke ich dir für deine Mühen.