• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi编写自定义控件以及接口的使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

写给觉得自己编写Delphi很复杂的人,包括自己。

Delphi自己写控件其实并不难,难的在于开发复杂的控件。(其实,编程,很多东西都是会了就不难,因此,我怕自己日后觉得自己写控件很难,特意在这记录自己写控件的过程,顺便也写下接口的使用)

第一步:控件代码:

下面是控件的一个Unit内容:

 

代码
unit pgdbedit;

interface

uses
  SysUtils, Classes, Controls, StdCtrls, CnEdit;

const
  IID_pgDBConInterface
='{88CEA70D-0506-4CC0-ABB0-4BDBFA0DDBCE}';


type
  TdbType 
= (dbText, dbInteger, dbFloat, dbBit, dbTime, dbBlob); //文本类型

  IpgDBConInterface 
= interface(IInterface) //定义数据库操作控件的接口
    [IID_pgDBConInterface]
    
//Stdcall是指示函数的参数入栈方式是从右到左
    
function GetCanUpdate: Boolean;
    
procedure SetCanUpdate(value: Boolean);
    
property DB_canUpdate: Boolean read GetCanUpdate write SetCanUpdate; //是否更新数据。
  
end;
  TpgDbEdit 
= class(TEdit, IpgDBConInterface)
  
private
    
{ Private declarations }
    FCanUpdate: Boolean;
    
function GetCanUpdate: Boolean;
    
procedure SetCanUpdate(value: Boolean);
  
protected
    
{ Protected declarations }
  
public
    
{ Public declarations }
  
published
    
{ Published declarations }
    
property DB_canUpdate: Boolean read GetCanUpdate write SetCanUpdate; //是否更新数据。

implementation

function tpgdbedit.GetCanUpdate: Boolean;
begin
  Result:
=FCanUpdate;
end;

procedure tpgdbedit.SetCanUpdate(value: Boolean);
begin
  FCanUpdate:
=value;
end;
end.

 

 

说明:这里没有RegisterComponents是因为打算创建2个包,一个是运行时的包以及设计时的包。

 

第二步:创建注册单元:

下面是这个单元的源码:

 

代码
unit pgControlsRegister;

interface
uses
  Classes;

procedure Register;
{* 控件、组件编辑器、属性编辑器注册过程}

implementation

uses
  pgdbedit;

procedure Register;
begin
  RegisterComponents(
'pgControls', [TpgDbEdit]);
end;

end.

 

 

第三步:创建运行时的包:

(文件->新建->其它->Package)

在创建出来的Package中点上面的Add按钮,把第一步中的单元添加进去,然后点上面的Options按钮,在Usage Options中选择Runtime only。点击OK关闭掉Options,然后点Compile进行编译,系统会提示需要加入其它包的,点确认就行了,系统会自动添加必要的包。这样,运行时的包就创建完了。

 

第四步:创建设计时的包:

(文件->新建->其它->Package)

在创建出来的Package中点上面的Add按钮,把第二步中的单元添加进去,然后点上面的Options按钮,在Usage Options中选择Designtime only。点击OK关闭掉Options,然后点Compile进行编译,系统会提示需要加入其它包的,点确认就行了,系统会自动添加必要的包。这样,设计时的包就创建完了。

 

有关这两个包的概念,大家可以去:

http://www.cnpack.org/showdetail.php?id=510&lang=zh-cn

看下介绍,我都是看了介绍才知道,才会去这样弄。这里,我们也是安装设计时的包就行了。运行时的包不用管。

原创作品出自努力偷懒,转载请说明文章出处http://www.cnblogs.com/kfarvid/


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
理解 Delphi 的类(十) - 深入方法[10] - 默认参数发布时间:2022-07-18
下一篇:
Delphi打印发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap