What’s CrossVcl ?

CrossVcl is a set of tools for Delphi developers, which can create VCL applications for macOS and Linux with Embarcadero Delphi.

CrossVcl is VCL emulator ?

CrossVcl not an emulator, it is WinAPI implementation for other platform.

What amount of WinAPI covered by CrossVcl ?

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.

What about third-party tools ?

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.

I'm third-party vendor and want to support CrossVcl

Just email us and we try to help you as much as possible.

How to disable CrossVCL for project ?

To disable CrossVCL for project, just add "CrossVCL OFF" string to any place in DPR file. For example:

program Project1;

// CrossVCL OFF



Unit1 in 'Unit1.pas' {Form1};

{$R *.res}



Application.MainFormOnTaskbar := True;

Application.CreateForm(TForm1, Form1);



What is LLVM-based compiler ?

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.

ld-linux.exe: error: cannot find -lGL

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

TImageList shows nothing

CrossVcl supports only 256-colors, 24 and 32 bit format for TImageList

TImage and TBitmap shows nothing

CrossVcl supports only 256-colors, 24 and 32 bit format for TBitmap

[DCC Error] E2141 Bad file format: 'myfile.res'

Unfortunatelly Delphi compiler for OSX and Linux doesn't support custom resources format. All custom resources should be RCDATA.

Why all visual components on Palette are disabled ?

It is IDE limitation, new controls only can be added when Win32 or Win64 platform is active.

How to install all dependencies to Ubuntu Server

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".

Linking error on OSX64

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).