Saturday, February 03, 2007

Ports of Delphi components

Last week i started to port two Delphi components: the already know VirtualTreeView and ATBinHex a Hex viewer. At the moment VirtualTreeView is compilable but does not work and ATBinHex works under Windows only. Both code can be get in LuiPack, a project i started to centralize and help keep track the components i develop.

Before someone would ask: "Why do a new port of VirtualTreeView if already exists one?", here are the answers:

  • The original port of VirtualTreeView (VTV) was based in version 4.0.17 from December 2003. Currently we are in version 4.5.1. A lot of changes happened after that. One option was to see what changed and than backport to the lazarus version. But two problems arise: At the time of 4.0.17 the VTV code was not in a version control system making hard to know what changed. Furthemore, the chances that applying these changes would conflict with the modifications done in lazarus port are high.
    So this time, the VTV code is in a svn server being easy to see what changed and than backport small modifications to lazarus if appropriate.
  • Some features were removed in the port process (CheckBox images, AlphaBlending, Bidi support) and other bugs introduced. To completelly fix them and add the missing features would require deep knowledge of how VTV works and the success was not guaranteed. So i believe the work to do a new port would be only a more hard than to fix it.
  • In that time LCL/fpc was far from what is now. This allow to do a easier port without the need to remove features. So, instead of removing features the idea is to fix the LCL, where appropriate or redo with LCL/fpc functions.
PS: Don't expect a working VTV soon, because of the decision to not remove features will lead to a long road.


Vincent Snijders said...

Luiz, I can offer you write access to the Lazarus-CCR svn repository on sourceforge. This may be useful when doinf the new port of VTV, since it will possible take a long time and others might want to help.

If you want write access, drop me a mail.

Luiz Américo said...

Hi Vincent. Many thanks but i already setup an account in bountysource (luipack) to host this and other projects

Vincent Snijders said...

Too bad.

I think doing it on lazarus-ccr sourceforge makes the development more visible.

(And it would make lazarus-ccr rise in the stats :-)).

Vincent Snijders said...

Unless you have heavy objections, I will think I will mirror you virtual treeview developement on lazarus-ccr's svn repository.

Luiz Américo said...

Replied in private