Scalabium Software |
|
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: yourTreeView.Items.BeginUpdate; This constuction will disable a repainting when you append the nodes - it's save a lot of time! Tip2: 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:-)
|
|
Copyright© 1998-2024, Scalabium
Software. All rights reserved. |