I received a personal email regarding my last blog post. I was complaining about my ElXTree component and considered using TMS’s AdvStringGrid. The suggestion was that I switch to Virtual Treeview instead.
I am quite familiar with Virtual Treeview. It is a highly respected component. It is OpenSource and free, and was designed with speed in mind and low memory usage - which if you’ve been reading my posts, you’ll know are very important to me. On Stackoverflow, there was a question “Delphi Components you can’t live without” and #1 out of 45 answers with an amazing number of upvotes (66 as of when I’m writing this), is Virtual Treeview.
I almost did switch several years ago. But at that time the program author, Mike Lischke, was closing up shop (retiring?) and putting Virtual Treeview up on Google code so others would take over and maintain it. I was worried about investing then in the component, since it hadn’t yet been modified to work with Delphi 2009. I did want the virtuality and speed, and later converted my ElTree to its Virtual mode, which on paper was a bit slower and used more memory than Virtual Treeview. But it was a paid component still being maintained and upgraded and was being upgraded promptly to work with each new release of Delphi.
Not too long ago, Virtual Treeview at Google code closed and Mike Lischke placed Virtual Treeview back on his website again and re-hosts the downloads. I’m not sure why, as I didn’t follow the events that closely. But it is clear that very little activity is happening on his site, with posts and updates being rather infrequent.
The problem I was complaining about regarding ElXTree was not its Treeview. It was not even its grid. The problem was with its Inplace Editor within the Grid. It almost worked, and it was just a simple matter (I thought) to make it work the way I wanted. Once that started bogging down, I considered switching to AdvStringGrid because of how well its Inplace Editor appeared to work in its demos.
I did look quickly again at Virtual Treeview, but the Inplace Editor built into it was less than adequate. Just about everything I was looking for wasn’t there, and I’d have to repeat all the customizations I made with ElXTree. In fact for a fully-Unicode enabled control, Virtual Treeview’s default Inplace Editor would not handle Unicode. Yes, you could override its Inplace Editor with your own, but that’s even more work.
I still drool over the possibility of likely increased speed and less memory by moving to Virtual Treeview. But I’ve first of all got to be sure it will be here for the long run before I invest the time and effort. My data structures are somewhat embedded right now in ElXTree, so it is not that easy to switch.
Okay. I’ll make this wager. Once Delphi releases a version that will allow Behold to be a 64-bit program, then for my Treeview and Grid, I’ll use either ElXTree or Virtual Treeview, whichever one is first to upgrade to work with the new Delphi.
I’ll be happy whichever wins.