I've writed my own Delphi-Lazarus converter. There is no text "ExplicitLeft" in my converted project (neither in .LPR file no in .PAS or .LFM) but i still get message "Unknown property: "ExplicitLeft"". What can I do with this problem?
P.S.: I don't like Lazarus converter.
======================================================================
Please use the latest converter in Lazarus trunk for best results.
And yes, I am not happy with it either even though I wrote most of it.
It is still a dummy converter. It doesn't do any deep code analysis which is needed for mapping some Delphi classes and their properties + methods to Lazarus classes. OpenGL and XML components are two common cases that would need it.
The converter uses Codetools which is very good for parsing and modifying "uses" sections and interfaces but not for parsing the actual code.
The converter is able to replace function calls inside code but it implements a parser for it, which contains only little context checking and thus is not very robust.
In long term there could be an "advanced converter" using another parser.
Windows API calls and OLE automation (for cross-platform conversion) and 3rd party components which are not ported to Lazarus make things still worse. Those projects are very difficult to convert even manually, automatic conversion will never be possible.
Still, some Delphi projects can be converted fully automatically into a cross-platform Lazarus project, without a single manual change!
Please load and test projects from "
http://delphiforfun.org/", for example Cannonballs and others. They are small but "real" applications (not just "Hello World").
Sorry! I've found "ExplicitLeft" in my unit3.lfm. Trying to fix it.
Fixed. I've deleted this text and some more uncompatible properties and my project was successfully compiled.
The "Explicit*" properties were recently registered internally in LCL to be skipped while reading a form file. They are also removed during conversion. So it seems the Lazarus built-in converter does a better job than your home made Delphi-Lazarus converter, at least on this one detail.
Would you like to join forces and help developing the Delphi converter in Lazarus?
I know the code looks first intimidating because it uses codetools and because it links to other parts of Lazarus ... and because parsing and converting Object Pascal source is complicated by nature. I am ready to help if someone is truly learning the code.
Is your home made converter better in some area? Would you like to share the code?
I know many things could be improved in Lazarus' converter also when using the current parser and architecture.
Juha