CrossVcl is a set of tools for Delphi developers, which can create VCL applications for macOS and Linux with Embarcadero Delphi.
CrossVcl not an emulator, it is WinAPI implementation for other platform.
CrossVcl covers only UI side of WinAPI (except DirectX) requred by VCL. For non-UI part of application you should use cross-platform routines from RTL and other frameworks.
All thrid-party tools should be modified (at least changing shared library names from for example "user32.dll" to CrossVclLib). It depends on tools, some of them can be used with simple modification, other requires more.
Just email us and we try to help you as much as possible.
To disable CrossVCL for project, just add "CrossVCL OFF" string to any place in DPR file. For example:
program Project1;
// CrossVCL OFF
uses
Vcl.Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
All new Embarcadero Delphi compiler based on LLVM technology and called "nextgen" compiler. Nextgen compilers don't have support of AnsiString, ShortString, embedded asseembler code and use ARC model for all objects.
Install OpenGL on Linux - "sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libglfw3-dev libgles2-mesa-dev"
Update Linux SDK in Delphi
CrossVcl supports only 256-colors, 24 and 32 bit format for TImageList
CrossVcl supports only 256-colors, 24 and 32 bit format for TBitmap
Unfortunatelly Delphi compiler for OSX and Linux doesn't support custom resources format. All custom resources should be RCDATA.
It is IDE limitation, new controls only can be added when Win32 or Win64 platform is active.
CrossVcl app may lanch on server without UI, for example app working with Vcl.Graphics. But it requires few dependencies which are not install by default on server - "sudo apt install libgl1-mesa-glx libglu1-mesa libgtk-3-common".
Since Windows.pas contains few OpenGL dependencis you have to add OpenGL.framework to OSX64 SDK by hand. First, open the SDK Manager, scrolldown the list to the Frameworks section (important !) and select one of the existing framework. Click on the “new” button on the right:
Do not select any radio button, click OK. You should have a new line in the Frameworks section:
Then click on “Update the local cache” (button below the list).