Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Scrollbar zeigt komisches Verhalten (https://www.delphipraxis.net/148585-scrollbar-zeigt-komisches-verhalten.html)

Björn Ole 4. Mär 2010 16:06


Scrollbar zeigt komisches Verhalten
 
Hallo,


ich habe eine TTreeView-Komponente und einen Thread, der in regelmäßigen Abständen mittels Synchronize die Daten des TreeViews aktualisiert.

Delphi-Quellcode:
ATreeView.Items.BeginUpdate;
try
  ATreeView.Items.Clear;
  // ATreeView neu füllen
  ATreeView.FullExpand;
finally
  ATreeView.Items.EndUpdate;
end;
Problem: Wenn ich gerade am scrollen bin, d.h. die Maus ist gedrückt, und der Thread jetzt den oberen Block abarbeitet, entstehen komische Nebeneffekte:

Keine Komponente reagiert auf Mausklicks, außer das TreeView selbst - Markierungen werden gesetzt, scrollen geht jedoch nur noch mit Mausrad. Auch das X oben rechts zum Schließen des Fensters will nicht - leuchtet nur auf (Win7), ein Rechtsklick in die Taskleiste und dort auf Schließen geht.

Weiß jemand, wie ich das verhindern kann?


Grüßchen, Björn

Björn Ole 7. Mär 2010 19:05

Re: Scrollbar zeigt komisches Verhalten
 
Ich hol mal dezent nach oben...

Wie ich inzwischen bei einem anderen Programm, auch in Delphi geschrieben, entdeckt habe,
kann man herausfinden, ob die Scrollbar (in dem Fall einer TListView) benutzt wird.
Das wär die optimale Lösung für mich.

D.h. bevor der Thread die Daten im meinem TreeView aktualisiert, würde ich gerne prüfen,
ob die Scrollbar in Benutzung ist und warten, bis sie losgelassen wird.


Ich hoffe mal, dass ich so das Fehlverhalten der ganzen Komponenten umgehen kann...


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