一、组件的基础知识简介:
Pas文件类型的组件,只用一个文件.Pas。组件只包括三类成员:属性、方法、事件,分属于四个部分:
private: 所有私有的成员都放在这里,只能被类自身的方法所访问,而不能被子类访问,对子类透明。也可说只能被单元本身的方法访问。
protected:除了可以被子类继承外,其余和private一样。不能被外界访问。
public: 公有的,在此间声明的属性和方法能被用户调用。
published: 出现在delphi开发环境属性栏中。
二、制作一个简单的组件基本步骤:
1、打开【File】->【New】->【Other】;然后选择【New】->【Component】回车。
2、出现【New Component】选项面板,
【Ancestor type】:选择你要继承的父类,(TComponent);
【Class Name】:输入将要制作的组件的类名。(TShowText);
【Palette Page】:输入或者选择组件将要安装在哪个面板上。(MyControl);
然后点击【OK】。
(如果点击的是【Install】就会安装在某个包里面,在此也可以新建一个包(DPK),再点【OK】)
3、delphi自动生成了一个继承自TComponent的控件了。自动添加了注册代码:
procedure Register;
begin
RegisterComponents('MyControl', [TShowText]);
end;
三、给组件添加属性、方法、事件:
1、添加属性
1>、在Private后面添加以下代码: FText : String;
2>、在Published后面添加以下代码:
property Text: String read FText write FText; // 这个Text属性会出现在delphiSDK的属性栏中
2、添加方法:
1>、在Public后面添加以下代码: procedure ShowText();
2>、然后按Ctrl + Alt +C,系统自动添加了这个方法的实现代码。在里面编写代码。
procedure TShowText.ShowText();
begin
ShowMessage(FText); //Uses Dialogs;
end;
3、添加事件
一个真正意义上的控件是离不开事件的,而事件的调用必须通过消息来驱动,
1>、在Private后面添加以下代码:
FOnStarShowText: TNotifyEvent;
FOnEndShowText: TNotifyEvent;
2>、在Published后面添加:
// 加上On仅仅表明它是事件,在事件栏中双击进入。‘On’会被自动去掉。
Property OnStarShowText: TNotifyEvent read FOnStarShowText write FOnStarShowText;
Property OnEndShowText: TNotifyEvent read FOnEndShowText write FOnEndShowText;
3>、然后就可以在任意地方调用这个事件;或者根据某些消息,触发这个事件;
例如:在上面编写的ShowText进行使用(当然,这是简单是使用方法);
procedure TShowText.ShowText;
begin
if Assigned(FOnStarShowText) then FOnStarShowText(Self);
if Assigned(FOnEndShowText) then FOnEndShowText(Self);
ShowMessage( FText );
end;
四、安装自制控件的方法:
1、在【Component】菜单中,选择【Install Component...】.
2、在【Unit File name】 后面单击“...",选择"*.pas"控件的单元文件,再点击OK。
3、在出现的窗口中单击【install】,即安装完毕,新装的控件即出现在你的面板中。
五、使用方法:和其他控件一样。
1、点击【MyControl】,选择【TShowText】控件。
2、设置属性栏【Name】为:ShowTxt1,【Text】为:测试以下;
3、点击事件栏中的两个事件,分别添加代码:
procedure TForm1.ShowTxt1EndShowText(Sender: TObject);
begin
ShowTxt1.Text := ShowTxt1.Text + '_ShowTxt1EndShowText' ;
end;
procedure TForm1.ShowTxt1StarShowText(Sender: TObject);
begin
ShowTxt1.Text := 'ShowTxt1StarShowText_' + ShowTxt1.Text ;
end;
4、在按钮的点击事件中
procedure TForm1.btn1Click(Sender: TObject);
begin
ShowTxt1.ShowText;
end;
5、运行,然后点击按钮的事件,就会显示结果。
六、Pas文件类型组件的调试
安装完自定义控件后,在自定义控件的Pas中修改代码,会直接影响到调用他的程序中,所以可以直接在自定义控件的Pas文件中设置断点,进入调试;
在自定义控件的Pas文件中,添加的新属性、事件。在应用程序中能通过代码直接调用,但是在对象监控器【Object Inspector】中不会显示,只能重新加载自定义控件,才能显示。
Delphi 编写DLL动态链接库文件的知识和样例
Delphi 编写ActiveX控件(OCX控件)的知识和样例