Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Delphi Modernes Docking Rect für Aero [Runtime-Patch] (https://www.delphipraxis.net/134440-modernes-docking-rect-fuer-aero-%5Bruntime-patch%5D.html)

Namenloser 22. Mai 2009 02:20


Modernes Docking Rect für Aero [Runtime-Patch]
 
Liste der Anhänge anzeigen (Anzahl: 1)
Der in der VCL integrierte Docking Manager zeichnet beim Verschieben einer Komponente einen invertierten Rahmen auf den Desktop, um die Position anzuzeigen. Unter Windows Vista kommt es bei aktiviertem Aero dabei zu starken Verzögerungen, weil der direkte Zugriff auf das Bildschirm-Canvas hier offensichtlich sehr langsam ist. Neuere Programme zeichnen deshalb meist ein halbtransparentes Rechteck (bzw. alphatransparentes Fenster), was auch weniger an Windows 98 erinnert - bestes Beispiel ist die Delphi-IDE selbst. Leider wurde dies in die VCL anscheinend noch nicht übernommen, zumindest nicht in Turbo Delphi.

Deshalb habe ich mich mal etwas umgeschaut, und einen kleinen Patch zusammengebastelt, den ich euch gerne zur Verfügung stellen möchte. Um den Patch zu benutzen, einfach irgendwo im Projekt die Unit einbinden. Wer das Ganze Testen mag, kann die Unit ja mal in der Docking-Demo von Delphi einbinden.

Würde mich über Rückmeldungen natürlich freuen.

thkerkmann 1. Aug 2010 19:26

AW: Modernes Docking Rect für Aero [Patch]
 
Hi,

bin grad auf der Suche nach Docking Lösungen, die auch noch unter Win7 funktionieren :) und dabei auf deinen Patch gestossen.
Funktioniert soweit ganz prima, dennoch zwei Anmerkungen:

Wenn ich das Docking Objekt über die Dockzone gezogen habe, verschwindet die Fläche, und der Benutzer (ich) ist erst mal irritiert. Läßt man dann los, funktioniert es wie gewünscht.

Wenn ich das Docking Objekt wieder abdocke, wird nach dem Loslassen das Objekt nur teilweise neu gezeichnet. Ich kann das natürlich durch ein Invalidate korrigieren, sollte aber evtl. von alleine passieren.

Wenn Du dafür noch eine Lösung hast ist es perfekt.

BTW: Ich verwenden D2010 unter Win7.

Beste Grüsse

Namenloser 1. Aug 2010 19:35

AW: Modernes Docking Rect für Aero [Patch]
 
Hmm, komisch, ich konnte keinen der von dir genannten Effekte bei meinen Tests unter Turbo Delphi und Vista beobachten. Die einzige Unschönheit, die mir aufgefallen war, war, dass beim Andocken noch kurz das gepunktete Standard-Rechteck gezeichnet wird, wofür ich aber keine Lösung finden konnte. Ich weiß nicht, ob dein Problem vielleicht auch etwas damit zu tun haben könnte.

Hast du vielleicht ein Beispielprojekt?

thkerkmann 1. Aug 2010 19:38

AW: Modernes Docking Rect für Aero [Patch]
 
Da muss ich erst was basteln,
hab das einfach mal so in mein Großprojekt einlinkt, aber ich check mal ob das mit dem Delphi Docking Beispiel auch geht.

Also das Delphi Demo funktioniert mit deinem Patch einwandfrei.
Werde also nach all meinen Dockingversuchen jetzt erst mal mein Projekt aufräumen müssen, und dann nochmal testen.

Danke für Deine Mühe.

Nikolaus 30. Jun 2011 07:03

AW: Modernes Docking Rect für Aero [Runtime-Patch]
 
Hi,

erstmal schönen Dank für die Lösung, funzt prächtig!
(Win7, Delphi 2009)

Zitat:

Wenn ich das Docking Objekt wieder abdocke, wird nach dem Loslassen das Objekt nur teilweise neu gezeichnet. Ich kann das natürlich durch ein Invalidate korrigieren, sollte aber evtl. von alleine passieren.
Hat das zu dockende Fenster den Borderstyle bsToolwin, tritt bei mir genannter Effekt auch auf. Allerdings nur dann, wenn ich eine Toolbar, oder alternativ mehrere TButtons in dem Fenster verwende.
Mit invalidate konnte ich das Problem nicht lösen - vielleicht habe ich auch nur noch nicht die richtige Stelle gefunden?

.. der Nikolaus

jaenicke 30. Jun 2011 07:47

AW: Modernes Docking Rect für Aero [Runtime-Patch]
 
Nur so nebenbei als Hinweis:
Bei Delphi XE funktioniert das in der mitgelieferten Demo auch ohne Patch, da wird ein transparentes Rechteck absolut flüssig beim Ziehen angezeigt, mit dem man dann auch das Ergebnis beim Drop als Vorschau anzeigen kann.

Namenloser 30. Jun 2011 20:19

AW: Modernes Docking Rect für Aero [Runtime-Patch]
 
Zitat:

Zitat von Nikolaus (Beitrag 1109103)
Zitat:

Wenn ich das Docking Objekt wieder abdocke, wird nach dem Loslassen das Objekt nur teilweise neu gezeichnet. Ich kann das natürlich durch ein Invalidate korrigieren, sollte aber evtl. von alleine passieren.
Hat das zu dockende Fenster den Borderstyle bsToolwin, tritt bei mir genannter Effekt auch auf. Allerdings nur dann, wenn ich eine Toolbar, oder alternativ mehrere TButtons in dem Fenster verwende.
Mit invalidate konnte ich das Problem nicht lösen - vielleicht habe ich auch nur noch nicht die richtige Stelle gefunden?

Hast du vielleicht ein kleines Demo-Projekt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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