[Lazarus] Virtual TreeView on Windows x64

Alexander Hofmann alexander.hofmann at new-h.de
Wed Aug 15 14:45:24 CEST 2012


Hi there.

Is SVN:
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/virtualtreeview-new/trunk/
still the actual current repository for the Virtual TreeView component?
In many cases I read to use the 4.8 branch to be able to compile the
TreeView on x64 Windows,
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/virtualtreeview-new/trunk/

In particular, I was searching for a working reversion of the Virtual
TreeView-Control for Windows x64 platforms. I found numerous bug fixes
that should enable the Virtual TreeView to compile under that platform,
and most advises I read was to use the 4.8 branch, which seems to be
available under
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/virtualtreeview-new/branches/4.8/
?

I'm sorry for the rather dumb question here, but I think I might miss
some points, as the 4.8 branch seems to be older than the trunk - and at
least the 4.8 branch checked out from the URL above does not compile on
Windows x64 on my platform (is: Lazarus 0.9.30.4 with FPC 2.6 in Windows
7 Ent. x64).

However, as I wanted to use the Virtual TreeView-Control and didn't see
through all the different versions (which might be sourced in my missing
experience with version control systems ;-)) I took todays last
SVN-Version of 2488 and changed some parts to be able to use it.
My patch is based on the work of Luiz Americo available at
http://bugs.freepascal.org/view.php?id=21216 - which I applied by hand,
as it was based on rev. 2275.

Changes:
o HasMMX-Function now returns true on all Windows x64 platforms, as I
think all Windows-Capable CPUs with x64 instruction set support MMX
(which might be wrong in the end, but I don't know)
o AlphaBlend's assembler helper functions were changed to support x64
CPUs (rather dirty Hack, but works - I also tried to use Window GDI's
own AlphaBlend function, which worked up to some extend but resulted in
dithered blending in the Constant-Alpha-And-Color mode, so I gave up on
that)
o all references to TControl.Color have been Wrapped into a small
function checking for clDefault first to resolve the "Black Control" issue

The "patch" is attached to that eMail. As I didn't know how to make a
diff in respect to Luiz' patch, that one contains both his and my
changes; maybe someone can help me out with that?

By the way, using LCL-Extensions 0.4, Virtual TreeView of reversion 2488
with the changes above applied seems to work fine with Lazarus 1.0 RC1
x64, too.

You may now throw Tomatoes and Eggs ;-)

With best regards

Alexander Hofmann


-------------- next part --------------
A non-text attachment was scrubbed...
Name: x64-patch-on-rev-2488.zip
Type: application/x-zip-compressed
Size: 6057 bytes
Desc: not available
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20120815/484275af/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20120815/484275af/attachment.sig>


More information about the Lazarus mailing list