编写lazarus控件的简单流程

发布时间 2023-09-07 11:03:51作者: 秋·风
简单记录一下编写lazarus控件的流程
1.Package-->New Package

 2.输入新建控件的名称

 3、鼠标右键点file-->Add Files from file System添加控件文件

 4、添加包含控件注册的文件
正常情况下Register unit应该打勾的,如果添加后没打勾,用鼠标点Register unit打勾就可以

 5、如果新建的控件包含必须的依赖控件,鼠标右键点击Requitred Packages添加相应的控件就可以

6、以上文件添加完成后就可以新建一个控件安装包了
7、包含控件注册的文件和delphi区别不大,以下是一个范例:

unit QFDataSetDemo;

interface

uses
  Classes,
  SysUtils,
  math,
  DB,
  StdCtrls,
  ExtCtrls,
  lazutf8,
  LCLType,
  LCLIntf,
  BufDataSet
  ;

type

  TQFJsonConnectionDemo = class(TComponent)
  private
    FServerAddr: string ;
    FServerPort: string ;
    FUserName:string;
    FPassWord:string;
    Ftoken:string;
    FIsLogin:string;
    FConnectionDefName: string;
    FConnectionList:TStringList;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property UserName: string read FUserName write FUserName;
    property PassWord: string read FPassWord write FPassWord;
    property ConnectionList:TStringList read FConnectionList;
    property ConnectionDefName: string read FConnectionDefName write FConnectionDefName;
  end;

  TQFJSONTableDemo = class(TBufDataSet)
  private
    FQFJsonConnection:TQFJsonConnectionDemo;
    FSQL: string ;
    FTableName: string ;
    FKeyFields: string ;
  public
    constructor Create(AOwner: TComponent);override;
    destructor Destroy; override;
  published
    property Connection: TQFJsonConnectionDemo read FQFJsonConnection write FQFJsonConnection;
    property TableName: string read FTableName write FTableName;
    property KeyFields: string read FKeyFields write FKeyFields;
  end;

  TQFJSONQueryDemo = class(TBufDataSet)
  private
    FQFJsonConnection:TQFJsonConnectionDemo;
    FSQL: string ;
    FTableName: string ;
    FKeyFields: string ;
  public
    constructor Create(AOwner: TComponent);override;
    destructor Destroy; override;
  published
    property Connection: TQFJsonConnectionDemo read FQFJsonConnection write FQFJsonConnection;
    property TableName: string read FTableName write FTableName;
    property KeyFields: string read FKeyFields write FKeyFields;
  end;

  procedure Register;

implementation

{$R *.res}

procedure Register;
begin
  RegisterComponents('QFDataSetDemo', [TQFJsonConnectionDemo,TQFJSONTableDemo,TQFJSONQueryDemo]);
end;

constructor TQFJsonConnectionDemo.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FServerAddr:='localhost';
  FServerPort:='8112';
  FUserName:='qf';
  FPassword:='qf';
  FConnectionDefName:='';
  Ftoken:='';
  FIsLogin:='';
  FConnectionList:=TStringList.Create;
end;

destructor TQFJsonConnectionDemo.Destroy;
begin
  inherited Destroy;
  Ftoken:='';
  FIsLogin:='';
  FConnectionList.Free;
end;

constructor TQFJSONQueryDemo.Create(AOwner: TComponent);
begin
  inherited ;
  FSQL := '';
  FTableName :='';
  FKeyFields :='';
end;

destructor TQFJSONQueryDemo.Destroy;
begin
  inherited Destroy;
end;

constructor TQFJSONTableDemo.Create(AOwner: TComponent);
begin
  inherited ;
  FSQL := '';
  FTableName :='';
  FKeyFields :='';
end;

destructor TQFJSONTableDemo.Destroy;
begin
  inherited Destroy;
end;


initialization

end.

8、最后,为控件添加图标,记得res资源文件中的item名称要和控件名称一致才可以在IDE显示正确的图标

 安装后的控件: