俗话说,不会写控件的Delphi程序员不是真正的程序员。今天学学如何在Delphi中自定义控件。
下面的案例基于Delphi自带的TButton自定义一个新的按钮TOkButton,该按钮新值一个Priority属性。
新建组件
依次打开菜单,File -> New -> Other, 在弹出的对话框中找到Component,点击OK。不同版本的Delphi界面可能不一样,但是都可以找到Component。
设置控件支持的平台
任意选一个都可以。这里选第一个,VCL for Delphi Win32。
设置继承自的组件
设置父组件,本案例的组件基于TButton,所以这里选择TButton。
设置类名
继续设置类名和存放位置,本例类名为TOkButton,单元名为OkButton.pass.
编写自定义控件代码
设置完成后,进入代码界面。由于我们增加了一个自定义属性Priority,所以需要在published声明位置添加一个Priority属性,这样才可以在Object Inspector界面看到该属性。
RegisterComponents('Samples', [TOkButton]);这段代码表示把该控件添加到Samples面板下。其中Samples面板名,可以根据自己情况任意修改。
unit OkButton;
interface
uses
System.SysUtils, System.Classes, Vcl.Controls, Vcl.StdCtrls;
type
TOkButton = class(TButton)
private
{ Private declarations }
FPriority: Integer;
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
property Priority: Integer read FPriority write FPriority;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TOkButton]);
end;
end.
至此代码已经全部完成。
注册控件
通过Component --> Install Component ,选择okbutton.pas文件。由于我们当前没有package,所以在该界面需要选择Install into a new package,即第二个选项。
Next进入下一个界面,Package Name,我们的组件在OnButton.pass,所以此处设置为OkButton.dpk,保持对应。
点击Finish之后,系统为我们开始安装组件。安装完成后,会弹出类似这种安装成功的提示。
验证
接下来验证刚刚新建的组件。新建一个窗体应用程序,在控件面板Samples面板中找到TOkButton,拖到窗体中。