AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Überzeichnen von Shapes verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Überzeichnen von Shapes verhindern

Ein Thema von Notxor · begonnen am 5. Nov 2009 · letzter Beitrag vom 10. Nov 2009
Antwort Antwort
Notxor

Registriert seit: 28. Okt 2009
41 Beiträge
 
Delphi XE2 Professional
 
#1

Überzeichnen von Shapes verhindern

  Alt 5. Nov 2009, 14:10
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?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Überzeichnen von Shapes verhindern

  Alt 5. Nov 2009, 14:20
Wie löschst du die Linie?

Ich würde es mit einem Form1.Invalidate(); machen - und dfabei sollten sich die Shapes auch neuzeichnen ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

Re: Überzeichnen von Shapes verhindern

  Alt 5. Nov 2009, 14:24
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Notxor

Registriert seit: 28. Okt 2009
41 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Überzeichnen von Shapes verhindern

  Alt 10. Nov 2009, 21:36
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Überzeichnen von Shapes verhindern

  Alt 10. Nov 2009, 21:42
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
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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