Chavoux Luyt schrieb:
I would also like some clarification on this question. I think
personally that it should be a one-way conversion process... i.e. it
should be possible to port/import any Delphi project into Lazarus
without problems, but not necessarily the other way round.

One possible way to implement it is to create the exact same "base
class" for all the Delphi components and then have the Lazarus (LCL)
components inherit from these base classes.The descendent classes can
then have all the nice-to-have feature like extra properties etc. that
we want in Lazarus (or just be an exact copy of its parent class if no
change is required). In this case it might even be possible to port
back from Lazarus to Delphi, as long as you only use the "base class"
components and not the LCL inherited classes.

That's problematic, since already LCL TControl has some more properties than in the VCL. Some modifications are required for widgetset compatibility, so that even the Win32 widgetset does not implement everything as in the VCL.

For best portability, in both directions, I'd suggest an *true* Windows/VCL widgetset, which may not be (fully) available on other platforms.

And of course the LCL will never include the new Delphi/RadStudio cross-platform widgetset, which now exists in parallel to the VCL. I'm not sure whether Lazarus can ever support such an LCL-incompatible widgetset.


But I think FPC might have a similar problem with the Delphi language
that has already changed a bit from the original. What is the the
situation on that side?

Most FPC incompatibilities result from a mix of features from different Delphi versions, so that it's impossible to maintain compatibility with one specific Delphi version. Most boring is the {$mode} compiler option, which exists only in FPC, along with other syntax incompatibilities. But these can be made somewhat compatible by {$IFDEF FPC} directives. A really breaking change will be the UnicodeString, introduced in D2009[?], once it will replace the previous generic/default string type (AnsiString).

It may or may not be possible to use older FPC versions for true compatibility with older Delphi versions. But since the LCL requires the latest FPC release version, it will be impossible to create a VCL compatible LCL now, fully compatible with older Delphi versions.

DoDi


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to