![]() |
Linie gesucht !!!
Hallo,
gibt es eigentlich etwas, daß wie LineTo funktioniert, sich aber nicht so schnell löschen läßt. Wenn ich eine Komponente über meine Form bewege und ich dabei über ein Linie komme, ist das genauso als ob ich einen Radierer einsetze. Kann man dies unterdrücken? Die Linien stellen Verbindungen zw. 2 Komponenten dar, die ich frei bewegen kann. Wie kann ich anstellen, das immer nur diese Linie gelöscht und nach der Bewegung neu gezeichnet wird. Oder noch besser wäre es wenn die Linie der Bewegung folgt. Wenn man mit refresh/repaint arbeitet löscht er alles und ohne garnichts. Kann man da keinen Mittelweg gehen? |
Wie zeichnest Du?
Schau mal bei:
Delphi-Quellcode:
TForm.OnPaint
|
Zeichne mal auf nem Image und nicht auf der Form bzw. einer PaintBox!
Gruß |
Du kannst müsstest halt immer, bevor du eine neue Linie zeichnest, die alte übermalen. Dazu musst du dir halt die Koordinaten merken und die pen.color auf die Hintergrundfarbe des Forms umstellen. Unangenehmer Nebeneffekt is allerdings, dass du eventuell andere Linie schneidest. Aber wieso nimmst du nicht einfach für jede Verbindung ein eigenes Image/PaintBox ?
Man liest sich, Stanlay |
Danke!
Das mit dem Image funktioniert. Er radiert nicht mehr. Irgendwie nimmt das Image kein repaint oder refresh an (Linien bleiben da). Muß man das beim Image anders machen? Wie funktioniert es, daß beim ziehen einer Komponente die Linie mitgezogen/neu gezeichnet wird. Kommt das in das MouseMove oder DragDrop Ereignis oder wohin. Hab hier schon einiges ausprobiert und habe so langsam das Bedürfnis blind in den Verkehr zu laufen. |
Im Image müßtest du die Sachen wieder übermalen, damit es leer ist.
|
Ok. Danke erst mal. Werde mir das alles mal durch den Kopf gehen lassen. Aber jetzt ist erst mal Feierabend.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 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