Difference between revisions of "Using the LCL without Lazarus"

From Free Pascal wiki
Jump to navigationJump to search
Line 60: Line 60:
 
This is the base-code:
 
This is the base-code:
  
program lcl_base;
+
<syntaxhighlight> program lcl_base;
 
  {$mode objfpc} {$H+}
 
  {$mode objfpc} {$H+}
 
  uses
 
  uses
 
   Classes, Interfaces, Forms;
 
   Classes, Interfaces, Forms;
 
   //Interfaces is important
 
   //Interfaces is important
  BEGIN
+
  begin
  END.
+
  end.</syntaxhighlight>
  
 
First we'll create a form:
 
First we'll create a form:
 
   
 
   
  program lcl_base;
+
  <syntaxhighlight>program lcl_base;
 
  {$mode objfpc} {$H+}
 
  {$mode objfpc} {$H+}
 
  uses
 
  uses
Line 82: Line 82:
 
   Form1: TForm1;
 
   Form1: TForm1;
 
     //Declare the Form1
 
     //Declare the Form1
  BEGIN
+
  begin
 
   Application.Initialize;
 
   Application.Initialize;
 
   Application.CreateForm(TForm1, Form1);
 
   Application.CreateForm(TForm1, Form1);
 
   Application.Run;
 
   Application.Run;
 
     //We do exactly the same as the Lazarus does
 
     //We do exactly the same as the Lazarus does
  END.
+
  end.</syntaxhighlight>
  
 
And then we'll create a nice button;
 
And then we'll create a nice button;
  
  program lcl_base;
+
  <syntaxhighlight>program lcl_base;
 
  {$mode objfpc} {$H+}
 
  {$mode objfpc} {$H+}
 
   
 
   
Line 105: Line 105:
 
   Form1: TForm1;
 
   Form1: TForm1;
 
     //Declare the Form1
 
     //Declare the Form1
  BEGIN
+
  begin
 
   Application.Initialize;
 
   Application.Initialize;
 
   Application.CreateForm(TForm1, Form1);
 
   Application.CreateForm(TForm1, Form1);
Line 120: Line 120:
 
   Application.Run;
 
   Application.Run;
 
     //We do exactly the same as the Lazarus does
 
     //We do exactly the same as the Lazarus does
  END.
+
  end.</syntaxhighlight>
  
 
That's it. Now, you are able to use the LCL without the Lazarus IDE.
 
That's it. Now, you are able to use the LCL without the Lazarus IDE.

Revision as of 18:41, 16 November 2014

How to use the LCL without the Lazarus IDE?


Requirements

Things you'll need:
 Free Pascal 2.4.4
 Lazarus 0.9.30

Tested on Microsoft Windows XP SP3. Note: #Lazarus 1.2.6 has different dependences between units and the method described here does not work.

Introduction

You aren't forced to use the Lazarus IDE if you want to develop with the LCL. You can use it directly from the Free Pascal Compiler.

The installation process

First download the Free Pascal 2.4.4 and the Lazarus 0.9.30 and install them.

Our FPC install directory will be this

X:\FPC\2.4.4\

"X" is the drive letter

The Lazarus install directory will be this

X:\Lazarus\

Then copy the lcl folder.

Copy this folder:

X:\Lazarus\lcl

Paste it to this location:

X:\FPC\2.4.4\units\i386-win32\lcl

Now you can remove the Lazarus from your computer. In the next section we'll informa the FPC that the LCL's been installed.

The settings

Start the FP. Click on the Options menu and then the Directories menu item. Select the Units tab (default).

Add these directories:

X:\FPC\2.4.4\units\i386-win32\lcl
X:\FPC\2.4.4\units\i386-win32\lcl\units\i386-win32
X:\FPC\2.4.4\units\i386-win32\lcl\widgetset
X:\FPC\2.4.4\units\i386-win32\lcl\interfaces\win32

Then click on the Include files tab.

Add this directory:

X:\FPC\2.4.4\units\i386-win32\lcl\include

Now, you should be able to use the LCL. However, above should be done for all Modes in Options if you plan to switch the mode in the future. Somehow easier is to edit fp.cfg directly. In the next section we'll try out creating a form with a button on it.

The code

This is the base-code:

 program lcl_base;
 {$mode objfpc} {$H+}
 uses
  Classes, Interfaces, Forms;
  //Interfaces is important
 begin
 end.

First we'll create a form:

program lcl_base;
 {$mode objfpc} {$H+}
 uses
  Classes, Interfaces, Forms;
     //Interfaces is very important
 type
  TForm1 = class(TForm)
  end;
     //Our Form class
 var
  Form1: TForm1;
     //Declare the Form1
 begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
     //We do exactly the same as the Lazarus does
 end.

And then we'll create a nice button;

program lcl_base;
 {$mode objfpc} {$H+}
 
 uses
  Classes, Interfaces, Forms, StdCtrls;
     //Interfaces is very important
 type
  TForm1 = class(TForm)
   Button1: TButton;
  end;
     //Our Form class
 var
  Form1: TForm1;
     //Declare the Form1
 begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Form1.Button1 := TButton.Create(Form1);
  With Form1.Button1 Do Begin
   Parent := Form1;
   Visible := TRUE;
   Left := 10;
   Top := 10;
   Width := 100;
   Height := 100;
   Caption := 'PRESS ME';
  End;
  Application.Run;
     //We do exactly the same as the Lazarus does
 end.

That's it. Now, you are able to use the LCL without the Lazarus IDE.

Lazarus 1.2.6

In order to compile the above example you will need access to units from folder X:\lazarus\components\lazutils. The FP compiler would build the application with c like operators on