![]() |
Punkte verbinden -> Linie löschen
'loha Folks,
zwei Punkte werden miteinander wie folgt verbunden:
Delphi-Quellcode:
Nun habe ich das Problem, dass das oben genannte Ereignis relativ viele male durchlaufen wird und mir immer mehr Linien auf das Formular gezeichnet werden. Leider finde ich keine Möglichkeit, nur diejenige Linie anzuzeigen, welche momentan auch wirklich gebraucht wird.
with img_3d_verbindung do
begin Canvas.FillRect(ClientRect); Canvas.MoveTo(img_door_l.Top, (img_door_l.Left + img_door_l.Width)); //Startpunkt der Linie Canvas.LineTo (shp_3d_vertical.Left, shp_3d_vertical.Top); //Endpunkt der Linie Canvas.Pen.Width := 1; Canvas.Brush.Style := bsClear; Canvas.Pen.Color := clRed; end; Hat jemand eine Idee, wie die jeweils letzte Linie ausradiert werden könnte? Grüsse hirnstroem |
Re: Punkte verbinden -> Linie löschen
Du könntest einfach mit weiss drüber malen?
Alternativ stellst du den Penmode auf PmXor. Wenn du dann eine Linie malst, wird der Hintergrund mit der Stiftfarbe per Xor verrechnet. D.h., wenn du die Linie mit den gleichen Einstellungen noch mal zeichnest, verschwindindet sie wieder. |
Re: Punkte verbinden -> Linie löschen
Du solltest vor dem Füllen die Füllfarbe setzen und das Füllmuster auf bsSolid stellen:
Delphi-Quellcode:
Gruß Hawkeye
with img_3d_verbindung do
begin Canvas.Brush.Color := clWhite; // <<--- hier! Canvas.Brush.Style := bsSolid; // <<--- hier! Canvas.FillRect(ClientRect); Canvas.MoveTo(img_door_l.Top, (img_door_l.Left + img_door_l.Width)); //Startpunkt der Linie Canvas.LineTo (shp_3d_vertical.Left, shp_3d_vertical.Top); //Endpunkt der Linie Canvas.Pen.Width := 1; Canvas.Brush.Style := bsClear; Canvas.Pen.Color := clRed; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 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