Recent

Author Topic: OpenPoker Conversion from Delphi  (Read 24433 times)

quasimotoca

  • Newbie
  • Posts: 6
OpenPoker Conversion from Delphi
« on: May 15, 2010, 10:23:03 pm »
Hi:

Is any one up for helping me convert the Delphi-based OpenPoker project to Lazarus?

http://sourceforge.net/projects/openpoker/

Cheers,
Dave

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11383
  • FPC developer.
Re: OpenPoker Conversion from Delphi
« Reply #1 on: May 16, 2010, 11:29:00 am »
It would be more helpful if you posted a list of dependancies (external pkgs used by the project, and non base components used in the project).

This because when Delphi porting (specially when the result must be portable), this is where the main problems lie.

quasimotoca

  • Newbie
  • Posts: 6
Re: OpenPoker Conversion from Delphi
« Reply #2 on: May 16, 2010, 12:32:54 pm »
Thanks for the reply, yes you're very correct on that one, It uses a number of third-party external components and it makes use of Borland VCL components as well. The run-time VCL items required are as follows:

dbrtl70.bpl
dsnap70.bpl
GR32_D6.bpl
GR32_DSGN_D6.bpl
inet70.bpl
mxOutlookBar_D6.bpl
rtl70.bpl
soaprtl70.bpl
vcl70.bpl
vcljpg70.bpl
vclsmp70.bpl
vclx70.bpl
xmlrtl70.bpl

The third party components (with source) are as follows:

BS Morph Button
FatMemo
G32
HitsoftTrackBarButton
mxOutlook
PDPCheckBox
RegExp
TrayIcon (CoolTrayIcon)

The initial part of this exercise is to see if there is a sufficient number of Lazarus components available to replace the above items and make the application truly portable.

BTW: I have it up and running in Delphi 6 so the code base works.

If this looks doable by a cursory review from a Lazarus expert then I would like to proceed with hiring a person to help me convert it.  It will be the initial project for a larger Open Gaming Foundation I'm starting.

Cheers,
Dave

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11383
  • FPC developer.
Re: OpenPoker Conversion from Delphi
« Reply #3 on: May 16, 2010, 02:03:19 pm »
Thanks for the reply, yes you're very correct on that one, It uses a number of third-party external components and it makes use of Borland VCL components as well. The run-time VCL items required are as follows:

First: FPC/Lazarus doesn't support packages, and won't for the forseeable future.

Quote
dbrtl70.bpl
dsnap70.bpl

Datasnap is not support, and probably never will be in a compatible form. Such frameworks are so complex that we can't readily infer the framework from apps that use it (with a bit of searching on the web for published documentation). This contrary to the VCL where one has the documented Win32 API abilities as a guideline, knowning that VCL is mostly only a thin wrapper.

Database related functionality is partially different, but you might not use that directly.

Quote
GR32_D6.bpl
GR32_DSGN_D6.bpl
inet70.bpl

If inet are the old Borland TTCPServer components, then this is not supported too, merge to Indy. I'm not sure about GR32, but if it is what I think, it is portable to Lazarus, but only to win32.

Quote
mxOutlookBar_D6.bpl

Obviously windows only.

Quote
rtl70.bpl
soaprtl70.bpl
vcl70.bpl
vcljpg70.bpl
vclsmp70.bpl
vclx70.bpl
xmlrtl70.bpl

Soap and xml are different, don't know what vclsmp does

Quote
The third party components (with source) are as follows:

BS Morph Button
FatMemo
G32
HitsoftTrackBarButton
mxOutlook
PDPCheckBox
RegExp
TrayIcon (CoolTrayIcon)

Most will only port to Windows, but probably are not that big a deal.

For now I'd try to cut down the GUI (to use more basic components), and then tackle other, more fundamental problems (datasnap,database, internet and XML/Soap components) first.

Quote
The initial part of this exercise is to see if there is a sufficient number of Lazarus components available to replace the above items and make the application truly portable.

BTW: I have it up and running in Delphi 6 so the code base works.

If this looks doable by a cursory review from a Lazarus expert then I would like to proceed with hiring a person to help me convert it.  It will be the initial project for a larger Open Gaming Foundation I'm starting.
 

(I'm not available btw)

quasimotoca

  • Newbie
  • Posts: 6
Re: OpenPoker Conversion from Delphi
« Reply #4 on: May 16, 2010, 02:19:26 pm »
That's great information and gives me some good starting points. I'm definitely going to scale down the GUI to more compatible components.  Not to put you on the spot or anything but does your gut tell you that this is a doable?

felipemdc

  • Administrator
  • Hero Member
  • *
  • Posts: 3538
Re: OpenPoker Conversion from Delphi
« Reply #5 on: May 16, 2010, 05:10:05 pm »
Quote
GR32_D6.bpl
GR32_DSGN_D6.bpl
inet70.bpl

I'm not sure about GR32, but if it is what I think, it is portable to Lazarus, but only to win32.

Quite the contrary, I have already done a free lancer job in which I ported GR32 to LCL-Carbon, because a company wanted to port a Delphi software to Mac OS X.

I did some testing with Gtk2 and it should be really extremely hard, because Gtk2 is so near the X11 design, which is very much he opposite of the GR32 design. LCL-Qt could be doable.
« Last Edit: May 16, 2010, 05:27:45 pm by felipemdc »

felipemdc

  • Administrator
  • Hero Member
  • *
  • Posts: 3538
Re: OpenPoker Conversion from Delphi
« Reply #6 on: May 16, 2010, 05:21:44 pm »
Well, I guess another very important question would be to which Operating Systems are you trying to port?

and another one: Do you want to keep it compatible with Delphi?

My idea about the controls:

Quote
GR32_D6.bpl
GR32_DSGN_D6.bpl

See: http://graphics32.org/wiki/Main/Release

Quote
mxOutlookBar_D6.bpl

BS Morph Button
FatMemo
HitsoftTrackBarButton
mxOutlook
PDPCheckBox

You should get rid of these ones.

Quote
RegExp

FPC has regular expression support, but I don't know if the API is compatible.

Quote
TrayIcon (CoolTrayIcon)

Lazarus has a TTrayIcon class which should be mostly compatible.
« Last Edit: May 16, 2010, 05:24:01 pm by felipemdc »

quasimotoca

  • Newbie
  • Posts: 6
Re: OpenPoker Conversion from Delphi
« Reply #7 on: May 16, 2010, 06:08:46 pm »
Thanks for the interest in the thread.  I'm not tied to Delphi in any way. All comparable items that can be used in Lazarus we can most certainly use.

I'm targeting Windows, Linux and Mac.  First priority is Windows.  I'm really just trying to decouple myself from the VCL components and .bpl plugins in Delphi.  It looks like you've had good success with GR32.  That's a big part of the program. I also agree with the turfing of those other components. Most of them aren't even around anymore and are outdated.  Lazarus can replace those items.

So, from what you've seen so far, where do you think the bottlenecks will be? I know, it's always the GUI but are there any other roadblocks you can foresee? Again, thanks for taking the time to look at this.


quasimotoca

  • Newbie
  • Posts: 6
Re: OpenPoker Conversion from Delphi
« Reply #8 on: May 17, 2010, 04:12:04 pm »
Could someone let me know roughly how long conversions like this take?  I'd like to price out the project and create a time-line.  I'm getting the feeling from the above discussion that this is doable.  Would I be in our out of bounds by looking to spend around US$ 2,500 - 3,500 for this project?
Cheers,
Dave 

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: OpenPoker Conversion from Delphi
« Reply #9 on: May 17, 2010, 05:40:00 pm »
Could someone let me know roughly how long conversions like this take?
2-3 months

quasimotoca

  • Newbie
  • Posts: 6
Re: OpenPoker Conversion from Delphi
« Reply #10 on: May 17, 2010, 06:40:44 pm »
Great, thanks.  That's a reasonable time-frame.  So I guess it's back to my original question - Is anyone available to help me do this?   :D
Cheers,
Dave

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4459
  • I like bugs.
Re: OpenPoker Conversion from Delphi
« Reply #11 on: June 05, 2010, 02:42:35 am »
@marcov:
> First: FPC/Lazarus doesn't support packages, and won't for the forseeable future.

?
Lazarus has packages. They are not dynamic and you must compile them into Lazarus but that is not a problem.

Juha
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

 

TinyPortal © 2005-2018