Hintergrundfarbe ändern
Übersicht

![]() |
PebenderBetreff: Hintergrundfarbe ändern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
wie ändert man am sinnvollsten die Hintergrundfarbe eines Canvas. Ich habe es im moment mit SetClsColor() gemacht, was ja auch funktioniert.Problem ist nur, wenn ich was ins Canvas zeichne wird das Canvas ja auch wieder gelöscht und auf die Farbe von SetClsColor() gesetzt. Komischerweise funktioniert SetGadgetColor() nicht, warum auch immer. Wenn ich in das Canvas ein Rechteck mit DrawRect() zeichne, kann ich dort anschließend andere Grafiken so draufzeichnen, das wenn ich die Farbe des Rechtecks ändere, sich an den anderen Grafiken nichts ändert? Oder soll ich einen komplett anderen Weg gehen?? BMax & MaxGUI im Einsatz mfg Peter |
||
BMax & MaxGUI |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Canvas entspricht genau dem Fenster, das Du sonst für die Blitz-Grafik-Befehle zur Verfügung hast. Windows hält sich komplett aus diesem Bereich heraus und "restauriert" auch nichts, wenn andere Fenster etwas davon überdeckt hatten. Daher lässt sich auch keine Hintergrundfarbe defineren. Wer auch sollte sich dafür interessieren?
Für den Aufbau des Fensters bist allein Du verantwortlich. Also.. Code: [AUSKLAPPEN] SetClsColor
Cls DrawRect x,y.... ... Flip willst Du die Hintergrundfarbe ändern, bleibt Dir nichts übrig als auch den gesamten Vordergrund neu zu zeichnen. So wie sich das anhört, könnten zwei Canvas eine Lösung für deine Probleme sein... |
||
![]() |
Pebender |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke Midimaster,
hatte nur gedacht es gibt eine simplere Lösung. In meinem Programm soll die Hintergrundfarbe den Zement darstellen. Und anschließend sollen Steinchen prozentual & per Zufall dargestellt werden. Meine Überlegung war halt, wenn du einen grünen Hintergrund hast, und änderst den auf blau, sollen die Steinchen nicht wieder neu geordnet werden, sondern nur der Hintergrund soll sich ändern. Die Farbe wird über RequestColor() ausgesucht. mfg Peter |
||
BMax & MaxGUI |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun, hier könntest Du ja aus den Steinchen einen zweites Layer gebastelt haben, der als eigenes Image jederzeit über das Hintergrundbild darübergezeichnet werden kann.
Oder zweite Lösung: Merke Dir den Zufallswert RndSeed bevor Du mit dem Zeichnen der Steinchen anfängst. Dadurch ist sichergestellt, das beim zweiten Malen alle Zufalls-Steinchen wieder an exakt die gleiche Position wie bei ersten Mal kommen. Für den Betrachter sieht das so aus, als ob nur der Hintergrund sich ändert. Wie lange brauchst Du denn aktuell, um die Steichen für eine Canvas zu malen? (von Cls bis Flip) |
||
![]() |
Pebender |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke dir für deine schnelle Antworten, aber....
Zitat: Wie lange brauchst Du denn aktuell, um die Steichen für eine Canvas zu malen? (von Cls bis Flip)
soweit bin leider noch nicht. Bin auch noch mit der Überlegung beschäftigt, wie genau ich da anstellen soll. Meine bisherigen Überlegungen sin wie folgt: Da es nachher etliche verschiedene Arten von Steinchen geben soll. Von jeder Art 100 Steinchen, die per Zufall platziert werden sollen. Steinchen werden im .PNG-Format gespeichert, da ich die Transparenz nutzen will. Steinchen laden über Combobox aus Verzeichnis heraus. Anzahl der Steinchen prozentual über Textboxeingabe bestimmen. Steinchen anordnenlassen und auf Kollision prüfen. so ungefähr stell ich mir das vor Arbeite mich auch noch durch verschiedene Tutorials, damit ich euch nicht noch öfters belämmern muß. mfg Peter |
||
BMax & MaxGUI |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würde, wäre ich an deiner Stelle, zunächst Lösungswege für das Stein-Problem suchen.
Dazu würde ich auf die MaxGui verzichten und lieber das was später in die Canvas mit einem 3D-Lösungsweg in B3D lösen. Später kann man das ganze ja uaf MiniB3D konvertieren und eine GUI drumherumschreiben. Der Grund für diese Vorgehensweise ist die Befürchtung, dass man das Steine-Einfüllen nur mit großes Timing-Problemen hinbekommen wird. Und man macht sich nicht die Mühe eine GUI zu schreiben und DANACH am Kernproblem zu scheitern. So wie ich das verstanden habe programmierst Du an einer Terazzo-Simulation. |
||
![]() |
Pebender |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja es soll eine Terrazzo - Simulation werden, wenn es fertig ist.
mfg Peter |
||
BMax & MaxGUI |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group