AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Modernes Docking Rect für Aero [Runtime-Patch]
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Namenloser · begonnen am 22. Mai 2009 · letzter Beitrag vom 30. Jun 2011
Antwort Antwort
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#1

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

  Alt 22. Mai 2009, 02:20
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.
Angehängte Dateien
Dateityp: zip blendeddockingrect_945.zip (2,0 KB, 118x aufgerufen)

Geändert von Namenloser (23. Okt 2010 um 00:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#2

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

  Alt 1. Aug 2010, 19:26
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
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

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

  Alt 1. Aug 2010, 19:35
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?
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#4

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

  Alt 1. Aug 2010, 19:38
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.
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/

Geändert von thkerkmann ( 1. Aug 2010 um 19:43 Uhr)
  Mit Zitat antworten Zitat
Nikolaus

Registriert seit: 22. Okt 2010
Ort: Thüringen
1 Beiträge
 
Delphi 2009 Professional
 
#5

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

  Alt 30. Jun 2011, 07:03
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
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#6

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

  Alt 30. Jun 2011, 07:47
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

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

  Alt 30. Jun 2011, 20:19
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?
  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 10:22 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