[fpc-pascal] GUI application sample for windows and linux

Graeme Geldenhuys graemeg.lists at gmail.com
Wed Aug 6 11:18:16 CEST 2008

On 8/6/08, Nataraj S Narayan <natarajsn at gmail.com> wrote:
> Hi Graeme
>  I am trying out fpgui for arm-linux. Please tell me how different are
>  msegui and fpgui. Why do we need two of them, if both are writing
>  direct w/o gtk or qt?

Ah, I couldn't find my 'template' reply....  ;-)
It basically comes down to personal needs and what you are used to I
guess. Both are great frameworks (yes I may say that). :)

I had a look at MSEgui before I started with fpGUI.  I did not plan on
reinventing the wheel. I came from Delphi (many years with that tool),
so I was used to how the VCL works. It wasn't cross-platform though
and Borland killed Kylix as we started using it (plus CLX was very
buggy and ugly).

I then moved to Lazarus LCL, which was an easy process because it was
similar to VCL. The problem was, at that stage the LCL was too
inconsistent for cross-platform business applications.  That's when I
looked at MSEgui.  I found two problems that prevented me from using
MSEgui. It's too different to what I was used to, and the coding style
was very different to what I was used to.  Both those issues might be
fine for Martin or others, but they were show stoppers for me. A
personal thing I guess.

I then found the abandoned fpGUI code.  It looked promising by design
and coding style was nice. After toying with it for a few months I
found some issues and decided to do a total rewrite of the code. 1.5
years later, and fpGUI is where it is today.  :-)

fpGUI has a few design differences compared to MSEgui, but overall our
goals similar. A custom written toolkit that makes us productive and
doesn't rely on many large 3rd party libraries.

A short summary of some of the obvious difference:

* fpGUI uses the utf-8 string encoding internally, MSEgui use UCS-2.
Though to a user of the toolkits, this shouldn't make much difference.

* fpGUI has one handle per widget. MSEgui has one handle per top level
window (Form)

* fpGUI might resemble some ideas from VCL, but is NOT bound to those
as a design (unlike LCL). fpGUI is not a VCL clone! MSEgui is just
different. ;-)

* MSEgui comes with a full blown IDE (MSEide). I have no intention in
reinventing the wheel here - I love the Lazarus IDE as is.

* To speed up the design of Forms, I created a UI Designer for fpGUI.
So you can visually design your forms. MSEgui has the integrated forms
designer as part of MSEide.

* MSEide, Delphi and Lazarus save the form designs as external files
(.dfm, .lfm etc). In fpGUI, with the UI Designer, the form designs are
part of the .pas unit file (no external file are required). This is
similar to Visual Studio with C# or Java IDEs. The UI Designer can
also handle multiple forms in a single .pas unit. I find the single
.pas file easier to work with, easy to search and replace form
properties, easy to make minor GUI changes without loading the form
designer etc...

Like I said, the projects have similar goals, so it comes down to
personal feeling. Try them both and see what you like.

  - Graeme -

fpGUI - a cross-platform Free Pascal GUI toolkit

More information about the fpc-pascal mailing list