Difference between revisions of "VirtualTreeview"

From Lazarus wiki
Jump to navigationJump to search
(42 intermediate revisions by 18 users not shown)
Line 1: Line 1:
===About===
+
{{VirtualTreeview}}
VirtualTreeview is a treeview control built from ground up.
 
  
Its main caracteristics are :
+
=== About ===
 +
VirtualTreeview is a [[TTreeView]] control built from ground up.
  
* extremely fast. Adding one million nodes takes only ~700 milliseconds
+
Its main characteristics are :
 +
 
 +
* it is extremely fast. Adding one million nodes takes only ~700 milliseconds
 
* very small memory foot print. by only allocating about 60 bytes per node  
 
* very small memory foot print. by only allocating about 60 bytes per node  
 
* optimized for high speed access. It takes as few as 0.5 seconds to traverse one million nodes
 
* optimized for high speed access. It takes as few as 0.5 seconds to traverse one million nodes
Line 13: Line 15:
 
* Nodes can have individual heights  
 
* Nodes can have individual heights  
 
* Sorting via compare callback
 
* Sorting via compare callback
* using Unicode/wide strings exclusively
+
* Support for unicode
 
* Multiple columns are supported  
 
* Multiple columns are supported  
 
* ... and many more
 
* ... and many more
 
The download contains the component, an installation package and a simple demo application, that illustrates the basic usage of the component.
 
  
 
This component was designed for cross-platform applications.
 
This component was designed for cross-platform applications.
Line 23: Line 23:
 
[[Image:Anivt.gif]]
 
[[Image:Anivt.gif]]
  
===Author===
+
=== Author ===
 
Author: Mike Lischke<br>
 
Author: Mike Lischke<br>
LCL Port: Joerg Thaler,[[User:Christian|Christian Ulrich]]  
+
Old LCL Port: Joerg Thaler,[[User:Christian|Christian Ulrich]]<br>
 +
New LCL Port: [[User:Luizmed|Luiz Américo]]
  
===License===
+
=== License ===
 
[http://www.opensource.org/licenses/lgpl-license.php LGPL] or [http://opensource.org/licenses/mozilla1.1.php Mozilla Public Licence 1.1]
 
[http://www.opensource.org/licenses/lgpl-license.php LGPL] or [http://opensource.org/licenses/mozilla1.1.php Mozilla Public Licence 1.1]
 
   
 
   
===Download===
+
=== Download ===
The latest stable release can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page].
+
See the project [https://github.com/blikblum/VirtualTreeView-Lazarus/releases releases page]
 +
 
 +
Note that v5.5.3.1 is included in Lazarus v2.0+, there is not need for a separate download.
 +
 
 +
=== Repository ===
 +
You can checkout the source code from [https://github.com/blikblum/VirtualTreeView-Lazarus GitHub]
 +
 
 +
It's possible to use both Subversion and Git clients
 +
 
 +
Subversion:
 +
svn co https://github.com/blikblum/VirtualTreeView-Lazarus/branches/lazarus-v5
 +
 
 +
Replace lazarus_v5 by lazarus_v4 or lazarus_master to get a different version. For more info how to use Subversion, see [https://help.github.com/articles/support-for-subversion-clients/ GitHub help]
 +
 
 +
Git:
 +
git clone https://github.com/blikblum/VirtualTreeView-Lazarus.git
 +
 
 +
=== Bug report / Feature request ===
  
===CVS===
+
[https://github.com/blikblum/VirtualTreeView-Lazarus/issues Here]
you can checkout the actual source from<br>
 
CVSROOT=:pserver:cvs@avl.ath.cx:/CVS/virtualtrees<br>
 
Modules:<br>
 
Src<br>
 
  
==Bug reporting / Feature request==
+
For patches / pull requests, [https://github.com/blikblum/VirtualTreeView-Lazarus/pulls here]. Newcomers to GitHub may want to read the [https://help.github.com/articles/using-pull-requests/ help]
  
[http://avl.ath.cx/mantis/ Bug Reporting/Featurerequest]
+
=== Change Log ===
 +
* 02/06/2016 - [http://forum.lazarus.freepascal.org/index.php?topic=32856.0 4.8.7 R4 and 5.5.3 R1] - First release of 5x branch + moved to GitHub
 +
* 20/10/2012 - [http://www.lazarus.freepascal.org/index.php/topic,18640.0.html 4.8.7 LCL R2] - Compatibility with Lazarus 1.0 + 64 bit support
 +
* 18/02/2011 - [http://www.lazarus.freepascal.org/index.php/topic,12172.msg62067.html 4.8.7 LCL R1] - Sync with 4.8 branch + misc fixes
 +
* 11/02/2010 - [http://www.lazarus.freepascal.org/index.php/topic,8601.msg41542.html 4.8.6] - First stable release of the new port
  
===Change Log===
+
=== Dependencies / System Requirements ===
 +
Versions 4.x or 5.x
  
* 02.11.2005 TWorkerThread is working now
+
*Lazarus 1.6 or newer
* 08.10.2005 first Fixes for Header
+
*fpc 2.6.4 or newer
 +
*LCL Extensions 0.6 or newer
  
Complete Changelog can be found at [http://www.lischke-online.de/VirtualTreeview/ Main VirtualTreeview Page]
+
Version 6.x (lazarus_master branch)
  
===Dependencies / System Requirements===
+
*Lazarus 1.6 or newer
* FPC 2.0.0 or newer
+
*fpc 3.1 (trunk) or newer
* Lazarus 0.9.8
+
*LCL Extensions 0.6 or newer
  
Status: Beta
+
=== Installation ===
 +
* If new to Lazarus, read [[Install Packages]]
 +
* Lazarus v2.0: The lclextensions and virtualtreeview packages are contained in the standard distribution of Lazarus because they are needed by the OnlinePackageManager. Go to "Package" > "Install/uninstall packages", select "virtualtreeview_package 5.5.3.1" in the right list, click "Install selection", then "Save and rebuild IDE".
 +
* Lazarus v2.2+ (or trunk): Like above, but the package and all units have been renamed to have a "laz." prefix, e.g. "laz.virtualtreeview_package" instead of "virtualtreeview_package" and "laz.virtualtrees" instead of "virtualtrees". The names of the registered components also begin with "Laz", e.g. "TLazVirtualStringTree" instead of "TVirtualStringTree". This was made to avoid a naming conflict when the user wants to install another version of VTV in addition to the built-in one.
 +
* Lazarus before v2.0, or VTV version other than v5.5.3.1 (in Laz v2.0 you will have to uninstall the built-in version first):
 +
** Download the LCL Extensions package and extract it to a directory (lazarus\components\lclextensions or other of your preference).
 +
** Download the Virtual Treeview package and extract it to a directory (lazarus\components\virtualtreeview or other of your preference).
 +
** Open lclextensions_package.lpk in LCL Extensions directory and click "Use / Add to project"
 +
** Open virtualtreeview_package.lpk in Virtual Treeview and click "Use / Install". Rebuild the IDE.
  
Issues:  
+
=== Help ===
Tested on Windows,Linux.
+
Can be found at [http://www.soft-gems.net/index.php/controls/virtual-treeview VirtualTreeview Main Page] (search for ''help in chm format'').
Needs testing on MacOS.
 
  
===Installation===
+
Example code can be found here: [[VirtualTreeview Example for Lazarus]]
* Create the directory lazarus\components\virtualtreeview
 
* On this directory, unzip the files from the zip file
 
* Open lazarus
 
* Open the package ta.lpk with Component/Open package file (.lpk)
 
* Click on Compile
 
* Click on Install
 
  
===Help===
+
== See also ==
 +
* [[TTreeView]]
  
Can be found at [http://www.lischke-online.de/VirtualTreeview/ Main VirtualTreeview Page]
+
[[Category:Components]]
 +
[[Category:Lazarus]]
 +
[[Category:Lazarus-CCR]]

Revision as of 01:40, 17 November 2020

Deutsch (de) English (en) español (es) français (fr) polski (pl)

About

VirtualTreeview is a TTreeView control built from ground up.

Its main characteristics are :

  • it is extremely fast. Adding one million nodes takes only ~700 milliseconds
  • very small memory foot print. by only allocating about 60 bytes per node
  • optimized for high speed access. It takes as few as 0.5 seconds to traverse one million nodes
  • Multiselection is supported
  • Drawing the entire tree to a bitmap or the printer is supported
  • fixed background image can be used
  • Hot style for nodes is supported
  • Nodes can have individual heights
  • Sorting via compare callback
  • Support for unicode
  • Multiple columns are supported
  • ... and many more

This component was designed for cross-platform applications.

Anivt.gif

Author

Author: Mike Lischke
Old LCL Port: Joerg Thaler,Christian Ulrich
New LCL Port: Luiz Américo

License

LGPL or Mozilla Public Licence 1.1

Download

See the project releases page

Note that v5.5.3.1 is included in Lazarus v2.0+, there is not need for a separate download.

Repository

You can checkout the source code from GitHub

It's possible to use both Subversion and Git clients

Subversion:

svn co https://github.com/blikblum/VirtualTreeView-Lazarus/branches/lazarus-v5

Replace lazarus_v5 by lazarus_v4 or lazarus_master to get a different version. For more info how to use Subversion, see GitHub help

Git:

git clone https://github.com/blikblum/VirtualTreeView-Lazarus.git

Bug report / Feature request

Here

For patches / pull requests, here. Newcomers to GitHub may want to read the help

Change Log

  • 02/06/2016 - 4.8.7 R4 and 5.5.3 R1 - First release of 5x branch + moved to GitHub
  • 20/10/2012 - 4.8.7 LCL R2 - Compatibility with Lazarus 1.0 + 64 bit support
  • 18/02/2011 - 4.8.7 LCL R1 - Sync with 4.8 branch + misc fixes
  • 11/02/2010 - 4.8.6 - First stable release of the new port

Dependencies / System Requirements

Versions 4.x or 5.x

  • Lazarus 1.6 or newer
  • fpc 2.6.4 or newer
  • LCL Extensions 0.6 or newer

Version 6.x (lazarus_master branch)

  • Lazarus 1.6 or newer
  • fpc 3.1 (trunk) or newer
  • LCL Extensions 0.6 or newer

Installation

  • If new to Lazarus, read Install Packages
  • Lazarus v2.0: The lclextensions and virtualtreeview packages are contained in the standard distribution of Lazarus because they are needed by the OnlinePackageManager. Go to "Package" > "Install/uninstall packages", select "virtualtreeview_package 5.5.3.1" in the right list, click "Install selection", then "Save and rebuild IDE".
  • Lazarus v2.2+ (or trunk): Like above, but the package and all units have been renamed to have a "laz." prefix, e.g. "laz.virtualtreeview_package" instead of "virtualtreeview_package" and "laz.virtualtrees" instead of "virtualtrees". The names of the registered components also begin with "Laz", e.g. "TLazVirtualStringTree" instead of "TVirtualStringTree". This was made to avoid a naming conflict when the user wants to install another version of VTV in addition to the built-in one.
  • Lazarus before v2.0, or VTV version other than v5.5.3.1 (in Laz v2.0 you will have to uninstall the built-in version first):
    • Download the LCL Extensions package and extract it to a directory (lazarus\components\lclextensions or other of your preference).
    • Download the Virtual Treeview package and extract it to a directory (lazarus\components\virtualtreeview or other of your preference).
    • Open lclextensions_package.lpk in LCL Extensions directory and click "Use / Add to project"
    • Open virtualtreeview_package.lpk in Virtual Treeview and click "Use / Install". Rebuild the IDE.

Help

Can be found at VirtualTreeview Main Page (search for help in chm format).

Example code can be found here: VirtualTreeview Example for Lazarus

See also