![]() |
Überzeichnen von Shapes verhindern
Tag auch,
habe nun ein neues Problem bei meinem Programm, und zwar geht es um folgendes: In der Form befinden sich eine Menge Shapes (und anderes Zeugs). Wenn ich jetzt auf der Form mit canvas eine Linie zeichne , legt sich diese über alles darüber, d.h. wenn ich sie wieder lösche, "radiert" sie von sämtlichen Shapes etwas weg. Kann man dies irgendwie (möglichst einfach) verhindern? |
Re: Überzeichnen von Shapes verhindern
Wie löschst du die Linie?
Ich würde es mit einem Form1.Invalidate(); machen - und dfabei sollten sich die Shapes auch neuzeichnen ... |
Re: Überzeichnen von Shapes verhindern
Zitat:
Die Shapes zeichnen sich auf dem Canvas ihres Parent, also auf der Form Wenn du jetzt danach selber auf das Canvas zeichnes, dann ist das vorher dort Befindliche natürlich weg/übermalt. Warum überhaupt die Shapes? Zeichne einfach alles selber, dann hast du auch die komplette Kontrolle wer was übermalt. Also immer das zuletzt ausgeben, was auch als Letzes sichtbar sein soll. |
Re: Überzeichnen von Shapes verhindern
Ok, sorry dass es so lange gedauert hat (viel Stress in der Schule :? ).
Das mit dem neuzeichnen habe ich jetzt hinbekommen. Allerdings gibt es jetzt ein neues Problem. Die Kugel soll sich genau in Richtung der Maus bewegen (beim Stoß). Zielt man auf der Form selbst herum funktioniert es ja, aber über einem Shape etc wird die Mausposition nicht verändert. Kann man das irgendwie beheben? |
Re: Überzeichnen von Shapes verhindern
Da wirst du die selben Ereignisse, wie auch bei der Form, bei den Shapes abfangen und dann an die Form weiterleiten müssen.
z.B. OnMouseMuve geht ja nur an das Objekt, welches unter dem Mauszeiger ist und das ist in diesem Fall das Shape und nicht die Form :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz