Difference between revisions of "VirtualTreeview"

From Lazarus wiki
Jump to navigationJump to search
(Updated Links, instruction how to unblock a downloaded .chm file under Windows)
(52 intermediate revisions by 20 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.
  
 +
[[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 ===
 +
 
 +
[https://github.com/blikblum/VirtualTreeView-Lazarus/issues Here]
 +
 
 +
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]
 +
 
 +
=== 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
  
===CVS===
+
=== Dependencies / System Requirements ===
you can checkout the actual source from<br>
+
Versions 4.x or 5.x
CVSROOT=:pserver:cvs@avl.ath.cx:/CVS/virtualtrees<br>
 
Modules:<br>
 
Src<br>
 
  
===Change Log===
+
*Lazarus 1.6 or newer
Complete Changelog can be found at [http://www.lischke-online.de/VirtualTreeview/ Main VirtualTreeview Page]
+
*fpc 2.6.4 or newer
 +
*LCL Extensions 0.6 or newer
  
===Dependencies / System Requirements===
+
Version 6.x (lazarus_master branch)
* FPC > 1.9.9
 
* Lazarus CVS > 27-04-2005
 
  
Status: Beta
+
*Lazarus 1.6 or newer
 +
*fpc 3.1 (trunk) or newer
 +
*LCL Extensions 0.6 or newer
  
Issues:  
+
=== Installation ===
Tested on Windows,Linux.
+
* If new to Lazarus, read [[Install Packages]]
Needs testing on MacOS.
+
* 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.
  
===Installation===
+
=== Help ===
* Create the directory lazarus\components\virtualtreeview
+
A comprehensive help file in .chm format* can be found within the GIT repository [https://github.com/blikblum/VirtualTreeView-Lazarus] in the subdirectory ''Help''.<br>
* On this directory, unzip the files from the zip file
+
A tutorial and numerous code samples can be found in this forum [[VirtualTreeview Example for Lazarus]], in the ''Demos'' Subdirectory of the VirtualTreeView GIT [https://github.com/blikblum/VirtualTreeView-Lazarus], and in the SVN of freepascal.org [https://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/examples/virtualtreeview/?root=lazarus]<br>
* Open lazarus
 
* Open the package ta.lpk with Component/Open package file (.lpk)
 
* Click on Compile
 
* Click on Install
 
  
===Help===
+
*Beginning with Windows 7, additional security measures were introduced for .chm Files, if you either download a .chm file directly via the browser (without going through a .zip file), or open the file from a network drive. The lock causes the problem that after opening the .chm file you will see only the table of contents, while the actual contents are missing. To manually release the lock use the Windows Explorer (Right Mouse Click - Properties - "Unblock"). This works with Windows 10 (4/2021) as well.
 +
== 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 10:40, 6 May 2021

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

A comprehensive help file in .chm format* can be found within the GIT repository [1] in the subdirectory Help.
A tutorial and numerous code samples can be found in this forum VirtualTreeview Example for Lazarus, in the Demos Subdirectory of the VirtualTreeView GIT [2], and in the SVN of freepascal.org [3]

  • Beginning with Windows 7, additional security measures were introduced for .chm Files, if you either download a .chm file directly via the browser (without going through a .zip file), or open the file from a network drive. The lock causes the problem that after opening the .chm file you will see only the table of contents, while the actual contents are missing. To manually release the lock use the Windows Explorer (Right Mouse Click - Properties - "Unblock"). This works with Windows 10 (4/2021) as well.

See also