@Raul_ES
Best you can do IMHO is to use frames designed for each widgetset (think virtual environments like VirtualBox; a pain, I know but I've not found a better way). The frame that is loaded by the form will then be based on which widgetset is being used. The application will then look better at run time avoiding the native font problem, height of controls and so on.
If you keep the code to handle the events on the form, you'll be able to keep code duplication as low as possible.
Thank you JD,
I was actually thinking about implementing a solution with frames but I was confused about how to eliminate redundant code. I am really new to TFrames.
Actually I have tried 3 solutions:
1) Run-time property management:
{$ifdef windows}
Label1.font.size := 0;
Label1.position ...
{$endif}
... painfull solution having to manually correct all the controls. This solution ties you to edit forms under the same envoironment and switch
exclusively to verify the misplacement or alterations of controls under the others.
2) Creating multiple clones of the same form, each one edited under it's corresponding envoironment. Manteinment problems.
USES
{$ifdef WINDOWS}Unit_Form1Windows,....{$endif}
{$ifdef UNIX}Unit_Form1_GTK,....{$endif}
3) Selecting the corresponding frame in runtime which I think is the way to go. But I have several issues about this solution that I
have not solved yet.