Delphi 编写Pas文件类型的组件

 一、组件的基础知识简介:

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控件)的知识和样例

猜你喜欢

转载自www.cnblogs.com/jijm123/p/12372037.html
今日推荐