Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Überzeichnen von Shapes verhindern (https://www.delphipraxis.net/142885-ueberzeichnen-von-shapes-verhindern.html)

Notxor 5. Nov 2009 13:10


Ü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?

jfheins 5. Nov 2009 13:20

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 ...

himitsu 5. Nov 2009 13:24

Re: Überzeichnen von Shapes verhindern
 
Zitat:

Zitat von Notxor
Kann man dies irgendwie (möglichst einfach) verhindern?

Nein

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.

Notxor 10. Nov 2009 20:36

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?

himitsu 10. Nov 2009 20:42

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 08:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz