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

alt Package Maker