Wie kann ich ein Dreieck von einer Funktion hineinladen?
-
_matze schrieb:
Eglifisch1 schrieb:
Wenn ich den Debugger starte, dann mekert er bei DrawPrimitives().
Wie wär's, wenn du mal die genaue Fehlermeldung postest?
-
Die Fehlermeldung habe ich bereits gepostet.
Hier nochmals:
Microsoft. NET Framework
Unbehandelte Ausnahme in einer Komponente der Anwendung. Wenn Sie auf "Weiter" klicken, ignoriert die Anwendung den Fehler und setzt den Vorgang fort.
Fehler in der Anwendung
-
Eglifisch1 schrieb:
Die Fehlermeldung habe ich bereits gepostet.
Hier nochmals:
Microsoft. NET Framework
Unbehandelte Ausnahme in einer Komponente der Anwendung. Wenn Sie auf "Weiter" klicken, ignoriert die Anwendung den Fehler und setzt den Vorgang fort.
Fehler in der Anwendung
Das ist die Meldung ohne Debugger. Daher habe ich dich passend zitiert und nach der Fehlermeldung im Debugger gefragt.
-
Also die Fehlermeldung im Debugger:
InvalidCallException wurde nicht behandelt.
Fehler in der Anwendung.
Hinweise zu Fehlermeldung:
Für Ausnahmen die Allgemeine Hilfe aufrufen.
-
Eglifisch1 schrieb:
Aber ich rufe die Funktion zwieschen BegineScene und EndScene auf. Kann man nicht mit einer anderen Funktion arbeiten, als mit triangleToolStripMenuItem_Click()?
Du rufts sie dort nicht auf du setzt sie dort,aufgerufen wird sie wenn das Menüitem geclickt wird.
-
Kann mir niemand sagen, wo das Probelm liegt?
Und eventuell ein Beispiel geben kann.
-
+= Weist nur den EventHandler zu und führt nichts aus,dannach wird der Code weiter ausgeführt das Programm wartet nicht an der Stelle bis das Menüitem geklickt wird.
-
Kannst du mir sagen, was ich dann schreiben muss, damit es funktionniert?
-
Da fehlen bei dir aber noch einige Grundlagen (wenn du das mit dem Event-Handler noch nicht verstanden hast).
Die einfachste Möglichkeit ist, einfach eine boolsche Variable zu benutzen:
public void Process(Device device) { device.Clear(ClearFlags.Target, Color.Black, 0.0f, 0); device.BeginScene(); device.VertexFormat = CustomVertex.TransformedColored.Format; if(draw_triangle) { device.SetStreamSource(0, MyVertexBuffer, 0); device.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 1); } device.EndScene(); device.Present(); } private bool draw_triangle = false; public void triangleToolStripMenuItem_Click(object sender, EventArgs e) { draw_triangle = true; }
Den Event-Handler mußt du dann natürlich vorher einmal registrieren (z.B. im Konstruktor).
Evtl. mußt du auch ein Neuzeichnen im MenuItem-Click erzwingen.
-
Danke schön, für dieses gutes Beispiel. Ich habe C# nicht wirklich gelernt, ich dachte ich könnte mein wissen von C++ übernehemen für C#!
Gruss Patrick