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 VirtualTreeView SCROLLEN (https://www.delphipraxis.net/17419-virtualtreeview-scrollen.html)

thomas.tenbergen 5. Mär 2004 10:33


VirtualTreeView SCROLLEN
 
Hallo,

Ich habe in einem Projekt folgende Problemstelltun:
In einer Tabelle mit vielen Spalten soll ein Teil der Spalten Horizontal scrollbar sein
und die ganze Tabelle soll Vertical scrollbar sein.

Mein Lösungsansatz:
Ich habe drei VirtualStringTree-Komponenten nebeneinander gestellt (ohne Rahmen), die alle drei
auf die gleichen NodeData-records verweisen. Ich habe nur die VerticalScrollbar der linken
komponente angezeigt und will nun alle drei gemeinsam vertical scrollen. Dazu habe ich im
OnScroll-Ereignis von Grid3 folgende Anweisungen hinzugefügt:
Code:
StringGrid1.scrollBy(Deltax, Deltay);
StringGrid2.scrollBy(Deltax, Deltay);
Mein Problem:
Nun nun scrollen die beiden VirtualStringTrees StringGrid1 und StringGrid2 nicht wirklich mit.
Und die Ansicht wird nicht repainted. Wenn ich die Scrollbars einblende dann bewegen diese sich
auch nicht mit.

:gruebel:

APP 5. Mär 2004 13:21

Re: VirtualTreeView SCROLLEN
 
Hallo Thomas,
ich benutze 2 VirtualStringTrees (vstLeft, vstRight) und synchronisiere sie beide im onScroll-Event mit einer Prozedur:
Delphi-Quellcode:
{******************************************************************************}
PROCEDURE TfMain.VSTSyncScroll(Sender: TBaseVirtualTree; DeltaX,
  DeltaY: Integer);
{******************************************************************************}
// Synchronisation beider VST beim Scrollen
BEGIN
  IF (Sender = vstLeft) THEN
    vstRight.OffsetY := vstLeft.OffsetY
  ELSE IF (Sender = vstRight) THEN
    vstLeft.OffsetY := vstRight.OffsetY;
END;
Ich habe sehr viele Nodes in den Bäumen und keine Probleme beim Zeichen/Updaten.

[EDIT]
Willkommen in der Delphi-Praxis :hi:
[/EDIT]

thomas.tenbergen 5. Mär 2004 13:56

Re: VirtualTreeView SCROLLEN
 
Hallo Armin,
vielen herzlichen Dank für Deine schnelle Hilfe.

Ich habe heute Morgen mal den Code der Unit VirtualTrees studiert und bin auch auf Hinweise gestoßen, die mit setzen von OffsetX und OffsetY zusammenhängen. Allerdings hätte ohne Deine Hilfe
bestimmt noch eine Weile gebraucht bis ich auf die korrekte Lösung gekommen wäre.

Danke nochmal!
Gruß, Tom - und Gottes Segen für Dich. :angle:


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