![]() |
Drag and Drop von Komponenten und Doublebuffered
Hallo,
ich erstelle gerade eine Art Designer, bei dem Controls (Shapes, Panels,...) auf einem TPanel liegen und die können mit der Maus verschoben / Vergrößert / Verkleinert werden... Nun übermalen Linien beim Verschieben andere Controls und wenn man diese Bewegungen mehrfach wiederholt sind die anderen Controls "wegradiert". Doublebuffered auf true führt dazu, daß die Panels z.B. beim Drag/Drop komplett schwarz werden! Ein auch als Hintergrund vorhandenes TImage wird nicht übermalt, so daß ich nun die Idee hatte, zu Beginn des Drag/Drop eine Art Screenshot zu machen, diesen in das Image und nach Beenden des Drag-Vorgangs wieder zu entfernen. Nur wie bekomme ich diesen "Screenshot des Panels"? Oder ist dieser Ansatz völlig falsch und es geht ganz anders? Ciao Stefan |
AW: Drag and Drop von Komponenten und Doublebuffered
Zitat:
|
AW: Drag and Drop von Komponenten und Doublebuffered
Es gibt auch fertige Designer wie diese, wobei letzteres weniger kostet:
![]() ![]() Um diese Funktionalität auch nur annähernd hinzubekommen braucht man schon sehr sehr lange... Auch die JEDIs haben so etwas als Open Source drin (auf der Seite Jv Runtime Design), aber das kann auch deutlich weniger als die beiden kommerziellen Lösungen. Um zu schauen woran es bei dir scheitert wäre etwas Quelltext hilfreich. |
AW: Drag and Drop von Komponenten und Doublebuffered
Ich habe scheinbar so viele Zeichenroutinen die dam System nicht mehr Zeit lassen, neuzuzeichnen :-(
Ich bin nun auf folgendes gestoßen:
Delphi-Quellcode:
damit funktioniert das Schieben eines Panels problemlos ohne jegliche Flackerei, der Haken dabei: ich bekomme es nicht hin, mehrere Panels (die als selektiert markiert sind) gleich zusammen zu verschieben.
procedure TForm1.ControlMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer); begin screen.Cursor := crSizeAll; if ssLeft in Shift then begin ReleaseCapture; (Sender as TPanel).Perform(WM_SYSCOMMAND, $F012, 0); end; Gibt es dafür einen Trick? Ciao Stefan |
AW: Drag and Drop von Komponenten und Doublebuffered
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 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 by Thomas Breitkreuz