教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 创建自己的Dephi构件

创建自己的Dephi构件

上传者:网友
|
翻新时间:2022-07-24

创建自己的Dephi构件

创建自己的Dephi构件 创建自己的Dephi构件 信息技术论文 更新:2006-4-8 阅读: 创建自己的Dephi构件

创建自己的Dephi构件

魏涛 黄峰 黄勤超

(合肥市炮兵学院研究生队 2300

3

1)

可视化编程工具Dephi以强大的功能,众多的优越特性,深受广大使用者的喜爱,但如何编写自己的Dephi构件对许多使用者来说比较陌生,因此,有必要掌握构件的创建方法。

一. 构件创建的步骤:

1. 使用New Component 对话框开始创建

选择File|New弹出Object Reposity,双击Object Reposity的Component图标,显示New Component对话框开始创建。

2. 为构件增加属性

Dephi中用关键字Property声明属性字段,属性有read和 write可选从句,其语法格式为:

Property MyProperty :Atype

Read GetProperty write SetProperty;

GetProperty SetProperty分别为读写属性过程。

3. 为构件增加方法

在Dephi构件创建中增加新的方法,需在 interface区的 private 、 protected 以 及public中的任一部分描述函数原型,若方法可能在以后被重载,则应在尾部加上 virtual 或dynamic关键字,然后在 implementation区定义方法的具体实现代码。

4. 为构件增加事件

在Dephi中,事件也是使用关键字Property来声明。其语法格式为:

Property OnNewEvent :Aevent Type

read FonNewEvent write FonNewEvent;

声明事件后往往要将windows的消息传递与事件联系起来才能真正实现事件驱动,因此,我们还要增加一种新的特殊类型的动态的“消息管理”方法,其语法格式为:

Procedure MsgPro(var Msg :Tmessage) ;message AmsgIndex;

其中,关键字Message 声明此为一个消息管理方法。 AmsgIndex 为一整数常数,作 windows 消息动态索引,当索引为 AmsgIndex 的消息传递至应用程序时便会执行 MsgPro过程。

5. 测试构件

测试构件,确信构件是按设计编译和起作用的。这是构件开发中非常关键的一步,为测试构件,要先写一个用作测试的应用程序,由于不能拉出构件选项板窗口上的构件,还必须人工创建一个构件。

6. 将新构件添加到构件选项板

当构件正常工作并令人感到满意后,可添加到构件选项板上,从主菜单选择Component | Install Component显示一个Install Component 对话框,该对话框能够添加构件到程序包。

二. 构件创建实例

下面要开发的新构TnewLabel 是从TLabel 类继承来的,它与 TLabel 具有相似的焦点感应能力:当鼠标移到Tlabel 上时,文字颜色发生改变;当鼠标离开时,颜色恢复。它还将增加一个EnterTextColor属性以及 OnMouseLeave和OnMouseLeave事件。属性 EnterTextColor中可以输入鼠标进入构件时文字的颜色, OnMouseEnter、 OnMouseLeave事件中则可输入程序员自己的代码来指定鼠标进入和离开构件时的动作。

1. 选中Component菜单项中的 New Component选项,在 Ancestor Type 框填入Tlabel,在 Class Name框中填入 TnewLabel ,在 Palette Page框中填入 Samples,在 Unit File Name 框中填入 NewCom.pas ,然后单击按钮 Create Unit就进入到代码编辑状态。

2. 使用 Tools菜单中Image Editor来创建编辑文件NewCom.dcr,为 TnewLabel类建立位图。

3. 增加新属性EnterTextColor ,并为读写属性增加私有方法 SetEnterTextColor和私有变

量 FenterTextColor。

加入如下的代码:

Private

FenterTextColor : Tcolor;

SetEnterTextColor(Acolor :Tcolor);

Published

Property EnterTextColor : Tcolor

Read FenterTextColor Write SetEnterTextColor(Acolor);

Implementation

Procedure TnewLabel.SetEnterTextColor(Acolor :Tcolor);

Begin

FEnterTextColor:=Acolor;

End;

4. 增加保护方法MouseEnter、MouseLeave、CM_MouseEnter和 CM_MouseLeave

加入如下的代码:

protected

Procedure MouseEnter; virtual; Procedure MouseLeave; virtual;

Procedure CM_MouseEnter(var msg : Tmessage);

Message CM_MouseEnter;

Procedure CM_MouseLeave(var msg : Tmessage);

Message CM_MouseLeave;

ImPlementation

Procedure MouseEnter;

Begin

If assigned(FonMouseEnter) then

FonMouseEnter(self);

End;

Procedure CM_MouseEnter(var msg :Tmessage);

Begin

Inherited;

MouseEnter;

End;

5. 增加事件OnMouseEnter 和 OnMouseLeave

加入如下的代码:

Private

FonMouseEnter,FonMouseLeave :TnotifyEvent;

Published

OnMouseEnter : TnotifyEvent

Read FonMouseEnter write FonMouseEnter;

OnMouseLeave : TnotifyEvent

Read FonMouseLeave Write FonMouseLeave;

6. MouseLeave CM_MouseLeave的实现代码与MouseEnter CM_MouseEnter的类似 。Dephi 为所有消息提供缺省处理。在写消息句柄时应 禁止缺省处理,因此在CM_MouseEnter和 CM_MouseLeave过程中调用了 inherited。

重载构造和析构方法的代码如下:

Public Constructor Create(Aowner :Tcomponent);override;

Destructor Destroy;override;

……

Implementation

Constructor Create(Aowner :Tcomponent);

Begin

Inherited Create(Aowner);

F

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

我的校园
神鸟保护大森林
小狮子变好了
小金鱼
假如我是
春天来了
苹果的心情
妈妈笑了
我的妹妹
我眼中的月亮
春天
倡议书
电脑画画真好玩儿
小猴子下山记(续)
春游
乡人大主席团会议制度
邮政局经济责任考核办法
药监局内部考勤制度
入党会议程序
邮政档案保密制度
统计局机关工作规章制度
X县“困难职工援助中心”管理办法
招待费管理规定
邮政驾驶员管理制度
城管局2005年党政信息工作目标考核办法
郊区工作办公室、农林局工作规则
*党组落实党员承诺制考核办法(广电系统)
公司印章管理办法
乡干部驻村工作制度及驻村干部行为准则
公司薪资管理办法
浅谈江泽民对社会主义民族理论实践的丰富和发展
基于抗震救灾精神的制度基础
东亚的政治权威与现代化
日本的政治结构
关于新民主主义理论形成发展规律与中国特色社会主义
试析“马克思主义理论”学科研究的方法论
试析马克思财富观的历史唯物主义意蕴
发达资本主义需要经济民主
关于马克思主义理论与思想政治教育专业的学科基础
基于新时期社会主义意识形态管理方法研究
关于发展廉价政府理论构建节约型政府
爱国主义精神的科学内涵及其现实意义
浅析美国的政治制度
邓小平对生产力理论的丰富和发展
从科索沃危机看美国世界战略
《两只小狮子》第一课时
《小白兔和小灰兔》教学设计之二
《画家乡》教学设计之二
《快乐的节日》教学设计之四
《王二小》教学设计之三
《两只小狮子》教学设计之三
《王二小》教学设计之五
《快乐的节日》教学设计之三
《画家乡》教学设计之三
《两只小狮子》
《两只小狮子》教学设计之二
《两只小狮子》教学设计之五
《画家乡》教学设计之四
《小白兔和小灰兔》片断赏析
《两只小狮子》教学设计之四