Ne Anfängerfrage
-
draw() nimmt doch sicher auch Parameter entgegen - und dort kannst du angeben, welches Objekt gezeichnet werden soll. (ich kenne die Funktion nicht, aber das geht entweder als
draw(objectx);oder alsobjectx.draw();)PS: Wenn wir dir weiter helfen sollen, wäre mehr Information nötig als "habe versucht, es mit Zeigern zu machen" - mit Zeigern kann man viel (auch viel Unsinn) machen

-
Wenn draw() eine Methode von Klasse X ist, dann lege dir doch in X einen Vector an, wo du dir deine geometrischen Objekte merkst. draw() ist nur zum Zeichnen da, und nicht dafür, weitere geom. Objekte anzulegen. Das anlegen von geom. Objekten mußt du woanders machen. Deine Frage hat nichts speziell mit FLTK zu tun, es ist eine reine Designfrage. Du bist jetzt nur durch FLTK darauf gestossen. Neue Lib -> neue Möglichkeiten -> neue Erfahrungswerte.

-
danke euch erstmal...
Archi kannst Du mir dazu ein Beispiel geben oder irgendein hinweis wo ich das nachlesen kann ?
Grüße
-
Kapsel doch die verschiedenen Aufgaben:
void mach_objekt_1() { /*...*/ } void mach_objekt_2() { /*...*/ } void mach_objekt_3() { /*...*/ } void draw() { mach_objekt_1(); mach_objekt_2(); mach_objekt_3(); }Gruß Hazzel
-
ja ok, das kann ich ohne weiteres machen, aber die Sache ist die, ich möchte das in einem GUI auswählen, welches Obejekt ich gezeichnet haben möchte.
Ich habe keine Idee, wie ich in unter einem Callback Funktion, genau die Funktion machonjekt1() oder machObjekt2() die sich in der Funktion draw() befinden auswählen kann.
-
Du kannst in deiner Fensterklasse eine int-Variable anlegen und darin die Information speichern.
enum { Auto, Baum, Haus }; MyWindow { public: void set_info(int die_info) { info = die_info; } private: int info; };In der Callback-Funktion setzt du dann info auf Auto, Baum etc und in der draw machst du dann ne Fallunterscheidung.
Gruß Hazzel :xmas1:
-
Danke Dir Hazzel,
muss mir halt nochmal was einfallen lassen, wíe ich unter enum direkt die Funktionen deklalieren kann das kriege ich dann wohl mit den Zeiger hin, danke DIr aber...
-
Hazzel, wie mache ich das denn in Bezug auf Funktionen ? ich kann ja nicht Baum=quadrat(); deklarieren.
-
Wenn du das unbedingt willst, kannst du z.B. Functionsobjekte von Boost benutzen
http://www.boost.org/doc/html/function.html
Soweit ich das verstehe brauchst du das aber gar nicht. Du speicherst halt die Information aus dem enum in einer Variablen und machst dann in der draw() eine Fallunterscheidung:void draw() { if(info == Auto) tu_dies(); else if(info == Baum) tu_jenes(); }Gruß Hazzel
-
ich habe es jetzt, vielen vielen Dank