[Lazarus] Porting Delphi to Lazarus

Luiz Americo Pereira Camara luizmed at oi.com.br
Sat Mar 15 01:53:30 CET 2008


drew einhorn wrote:
> Hi,
>
> I'm organizing a team attending Health Jam Seattle
> April 18-20
>
>     http://wiki.laptop.org/go/Health_Jam
>
> We will be porting the VA's VistA software frontends
> to Lazarus/Free Pascal.  VistA is the IT infrastructure
> that runs the VA's hospitals, nursing homes, and clinics.
> It includes a complete Electronic Medical Record System.
>
>     http://wiki.laptop.org/go/WorldVistA#VistA
>
> We are hoping some Lazarus/Free Pascal developers will join us.

I have some experience in porting Delphi components to LCL (See 
https://luipack.bountysource.com/) and i would be happy in helping.
See some notes below
>
> VistA CPRS Delphi source statistices
>
> Count of files by extension
>
> .avi 1
> .bak 21
> .BMP 1
> .bmp 117
> .~bpl 1
> .bpl 1
> .cfg 5
> .dcp 1
> .dcr 5
> .dcu 18
> .ddp 236
> .~ddp 74
> .dfm 252
> .~dfm 85
> .dklang 1
> .doc 1
> .dof 5
> .dpk 4
> .~dpr 1
> .dpr 1
> .drc 5
> .~dsk 1
> .dsk 2
> .dsm 1
> .html 1
> .jcf 1
> .JDF 1
> .JGF 1
> .jpg 1
> .jsb 1
> .jsd 1
> .JSS 1
> .map 1
> .old 1
> .~pas 100
> .pas 326
> .rc 1
> .res 10
> .~tlb 1
> .tlb 1
> .~txt 1
> .TXT 1
> .txt 2
> .vpw 1
> .we 1
>
> .pas files total 204651 lines

Will the code be shared between Delphi and Lazarus or it will be a fork? 
In the former option the work is harder.

>
> We hope to have gotten past compilation issues by the
> HealthJam, and be focusing on the necessary VCL
> components missing from LCL.  But we may still
> be fighting compilation issues.
>
> Been resisting the urge trying to extract the VCL calls
> from the code.  Been hoping to get through the compilations
> and get the linker or somthing to give me a count.
>
> Folks who are familiar with the CPRS code to a quick look at:
>
>     http://wiki.freepascal.org/Lazarus_Components
>
> And noticed TFrame and TRichEdit are missing. 
> There's almost certainly more.

TFrame is easy to be ported but you are in trouble with TRichEdit. I 
already researched for a TRichEdit control that does not relies in 
native win32 control and only found comercial 
(http://www.trichview.com/). There's a port from a old version ( 
http://wiki.lazarus.freepascal.org/RichView) but is read only. An 
alternative way is to find a suitable gtk2 control (i don't know any) an 
write a wrapper around it.

Another issue is if gtk1 widgetset is suitable for such work. I don't 
know if XO supports gtk1. The gtk2 widgetset is not as good as gtk1.

>
> I made a couple stabs at converting to Lazarus.
>
> Most recent on a Ubuntu box using the testing repos
>
>     lazarus 0.9.24 beta 5/11/07
>     free pascal  2.2.0-1
>
> Getting "safecall" errors at compile time.  I see stuff in the
> bug tracker about "safecall" runtime issues not resolve till
> 2.3.1
>
> So next thing I need to do is find the right vintage of Lazarus/Free 
> Pascal.

Can you post a link to the code, so i can take a look?


Luiz



More information about the Lazarus mailing list