Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2012-08

Virtual TreeView on Windows x64

2 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Alexander Hofmann

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.freepascal.org/pipermail/lazarus/attachments/20120815/484275af/attachment.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.freepascal.org/pipermail/lazarus/attachments/20120815/484275af/attachment-0001.bin>

Reply by email

Luiz Americo Pereira Camara
to Alexander Hofmann
Alexander Hofmann wrote 16 lines
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/ ?

Yes.
In fact 4.8 is the most recent branch.

Show quoted text 5 lines
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).

The VirtualTreeView from svn only supports Lazarus 1.0 or above. There's one version that supports 0.9.30 but does not have 64bit fixes: http://forum.lazarus.freepascal.org/index.php/topic,12172.msg62067.html#msg62067

Please try the Lazarus 1.0RC with 4.8 branch + LCL Extensions from svn ( http://code.google.com/p/luipack/source/browse/#svn%2Ftrunk%2Flclextensions )

If you find bugs in the above configuration, send patches through bug reports (one report for each issue).

I'll do a release compatible with 1.0 soon

Show quoted text 29 lines
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 ;-)

Most of the above bugs are fixed, others needs more tests in 64bit. Assembly routines should be removed or reworked by someone that have such knowledge

Luiz

Reply by email