Scalabium Software

SMExport advertising
Knowledge for your independence'.
Home Delphi and C++Builder tips


#110: How can I increase a performance of standard TTreeView/TListView?

If you uses the TTreeView and/or TListView from Win32 page of default component palette, then you must know that if you have the large amount nodes, you have a very bad performance...

Of course, at same moment you'll try to find a some other third-party component that allow to work with your very large data but I want to give you the few hints which allows to increase a performance without any third-party components. Only using of optimized code.

Tip1:
if you need add a lot of nodes in same time (for example, after button click to load the 10000 nodes in tree from some source) then you must call:

yourTreeView.Items.BeginUpdate;
<your code for append of nodes>
yourTreeView.Items.EndUpdate;

This constuction will disable a repainting when you append the nodes - it's save a lot of time!

Tip2:
if you uses the some navigation by nodes, you must use the GetFirst and GetNext methods instead Items[i] using!

For example,

for i := 0 to yourTreeView.Items.Count-1 do
begin
  node := yourTreeView.Items[i];
  <process a node>
end;

For example, in own warehouse system I have a treeview with 5000 nodes which I load from Oracle8i resultset. After applying of these tips, the time of execution of procedure with append was decreased from 4-5 minutes to 15-20 seconds! Trust me:-)

I don't sure but I think that it's a bad work of Borland when team developed the envelope for Win's treeview/listview. But maybe I'm wrong.

PS: of course, if you have a very-very large data with few billions of nodes or after applying of tips above all the same you have a bad performance, you must use the virtual mode of control or really select the other third-party control. But I suggest to change the your inteface logic - to navigate thru few billions of nodes in same time is very hard task for user! Not only for you:-)


Published: December 28, 2000

See also
 
Paradox Password Recovery
DBLoad
Excel Reader (dll)
Paradox ActiveX
Paradox Viewer
Paradox to Text converter
DBExport tools
MAPIMail
SMReport
Clarion Viewer
 
 


Contact to webmaster

 

Borland Software Code Gear Scalabium Delphi tips

Copyright© 1998-2025, Scalabium Software. All rights reserved.
webmaster@scalabium.com

SMExport advertising