网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
通过实例看VCL组件开发全过程(四)
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
then

   SetValue(TimeToStr(TimeEditFrm.DateTimePicker1.Time));

  //GetValue和SetValue是TStringProperty的基类方法,他直接读取和设置字符串的值

finally

  TimeEditFrm.Free;

end;

end;



function TClockProperty.GetAttributes: TPropertyAttributes;

begin

  result:=[paDialog,paMultiselect];

  //paDialog表示属性编辑器将显示一个对话框,paMulitiselect允许多个组件选择属性

  //除此之外如果你想让属性编辑器显示下拉列表,你还需要paValueList具体请查看帮助

end;

最后我们用RegisterPropertyEditor方法注册属性编辑器:

procedure Register;

begin

……

RegisterPropertyEditor(TypeInfo(string),TClock,''BeginTime'',TClockProperty);

RegisterPropertyEditor(TypeInfo(string),TClock,''WakeTime'',TClockProperty);

end;

重新编译更新组件后我们就可以测试了.
接下来我们来实现组件编辑器:

组件编辑器需要继承TcomponentEditor并覆盖一些重要的方法,GetVerbCount返回设计时组件右键自定义菜单的数目,GetVerb为每一个自定义菜单添加文字,ExecuteVerb为每一个菜单项添加事件,Edit为组件的缺省操作指定事件(即在设计时双击组件),以下是代码:

TClockEditor=class(TComponentEditor)

public

   function GetVerbCount:integer;override;

   function GetVerb(index:integer):string;override;

   procedure ExecuteVerb(index:integer);override;

   procedure Edit;override;

end;

实现部分:

procedure TClockEditor.Edit;

begin

  ExecuteVerb(1); //默认显示关于

end;



procedure TClockEditor.ExecuteVerb(index: integer);

begin

  case index of

   //第一个显示名字的菜单什么都不做显示

   1:showmessage(''hk.barton@2003'');

  end;

end;



function TClockEditor.GetVerb(index: integer): string;

begin

case index of

  0:result:=''hk.barton'';

  1:result:=''About Clock'';

end;

end;



function TClockEditor.GetVerbCount: integer;

begin

  result:=2;//我们显示两条菜单,一个我的名字,一个关于

end;

同样最后我们注册组件编辑器:

procedure Register;

begin

……

RegisterComponentEditor(TClock,TClockEditor);

end;

    


文章写到这里也该结束了,虽然写了那么多,然而在组件开发中这仍是一小部分内容,本文只是抛砖引玉的作用,希望对正要进入组件开发的朋友一些启示。为了方便你阅读本文,如果你想要本文所开发的这个组件的全部原文件,请和我联系:

E-mail:hk.barton@sohu.com   hekphi@hotmail.com      QQ:6813489

(全文完)



参考文献:

  Marco Cantu 《Mastering Delphi》

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号