How To Write Lazarus Component

From Lazarus wiki
Jump to navigationJump to search

Step 1: Create Icons For The Package

  • Size of PNG file should be 24x24
  • You may need to compile lazres at first use. Simply open the lazres.lpi in the IDE and at the menu click run > build.

To create the lrs file run (where samplepackage is the name of your package and TMyCom is the name of your component):

~/lazarus/tools/lazres samplepackage.lrs TMyCom.png

You can add more than one image to the lrs file by appending the image filename at the end. Eg. ~/lazarus/tools/lazres samplepackage.lrs TMyCom1.png TMyCom2.png ...

Following is a sample of the samplepackage.lrs file.

LazarusResources.Add('TMyCom','PNG',[
  #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#2#0#0#0'o'#21#170#175
  +#0#0#0#4'gAMA'#0#0#177#143#11#252'a'#5#0#0#0'|IDAT8O'#237#212#209#10#192' '#8
  +#5'P'#247#231#251's'#215#138#133#164#166'\'#220#195'`'#209'c'#157'L'#173#131
  +#153#169'd4'#168'dP'#137'r_'#235'5'#136'@Zmk'#16'd9'#144#176#232#164'1'#247
  +'I'#8#160'IL'#206'C'#179#144#12#199#140'.'#134#244#141'~'#168#247#209'S~;'#29
  +'V+'#196#201'^'#10#15#150'?'#255#18#227#206'NZ>42'#181#159#226#144#15'@'#201
  +#148#168'e'#224'7f<@4'#130'u_YD'#23#213#131#134'Q]'#158#188#135#0#0#0#0'IEND'
  +#174'B`'#130
]);

Step 2: Create The Unit

  • Create a file called mycom.pas with the following code
  • The 'Sample' parameter in the RegisterComponents tells the IDE to put the component in a tab called Sample in the components tab

<delphi> unit mycom;

{$mode objfpc}{$H+}

interface

uses

 Classes, SysUtils, StdCtrls, Forms, Dialogs,
 LCLType,LCLIntf,lresources,LCLProc;

type

 TMyCom = class (TCustomComboBox)
 private
 public
 end;

procedure Register;

implementation

procedure Register; begin

 RegisterComponents('Sample',[TMyCom]);

end;

initialization

 {$I samplepackage.lrs}

end. </delphi>

Step 3: Create The Package

  • Create a directory and but samplepackage.lrs and mycom.pas in it.
  • On the Lazarus IDE menu, click Package > New Package. The following image shows the Package Manager
Package Maker
  • Click the Add button, goto the Add Unit tab. At the Unit file name, browse to the mycom.pas file. Click the Add Unit button to confirm. If the packet manager complains that the unit is not in the unitpath, click yet to add the directory to the unit path.
  • Click the Add button again, goto the Add File tab and browse to the samplepackage.lrs file and click Ok.
  • Click the Add button again, goto the New Requirement tab, in the Package name select LCL and click Ok.

End result should look like this:

Package Maker
  • Click the Save button. Save the package as samplepackage.lpk
  • Click the Compile button to check to see if the files compiles without errors.
  • Click the Install button, Lazarus will rebuild and restart automatically.

The component is created and ready to be used:

Component Created