Delphi 组件开发教程指南(3)组件注册
在上一篇中,我们简单的实现了一个对Delphi自身的TEdit编辑框控件的一个扩充!但是我们并不能像Delphi自己的TEdit一样,能够
在设计状态下进行设计,而是非得要自己手动创建控件,然后才能使用。这个虽然说也是组件,但是却失去了组件的可设计的方便性,仅仅可作为一个类库来使用。
现在我就来介绍一下,如何让这个组件注册到IDE上,然后让你能够在设计状态下可以设计使用。
在讲注册组件的时候,我们需要先明白Delphi中的包的概念,这里我就不做说明了,不清楚的,可以到Cnpack网站去了解这方面的知识
。在注册组件时,就需要一个设计期间的包文件,然后将我们上次新建的Edit的那个单元文件添加到包中。首先,我们新建一个包文件,然后添加单元文件,具体参考如下:
从图上的操作可以看到,我先新建了一个名字叫做TestPackage的包,然后将Edit1.pas的单元文件添加到这个包里面了,之后编译,安
装了之后,就将控件显示在Standard那个组件栏中了,里面有一个TEdit1的组件,那个就是我们从TEdit继承过来的新组件!然后再看属性编辑
器中就多了Alignment这个属性,设置它,就能设置文字的对齐方式了。
好了,到此为止,这个简单组件就注册完成了,可能有人不了解,就建立一个包,编译安装,就能将组件注册到IDE的组件栏中去吗?实际上当然不是做个安装包
编译一下就完了的。还记得,在上一篇中,我最开始用组件编写向导做了什么吗?我选择了将组件安装到Standard那个栏上。有心的人打开
Eidt1.pas可能就会发现在Edit1.pas中有一个注册的过程为
procedure
Register;
implementation
procedure
Register;
begin
RegisterComponents(
'
Standard
'
, [TEdit1]);
end
;
这个Register就是组件注册的过程,包会自动调用的,注册过程中调用了RegisterComponents这个过程
这个过程的第一个参数指定要注册到IDE的哪个组件面板(如果IDE组件面板中没有你给定的这个值,Delphi会自动添加一个新的组件面板),参数二指定的是要注册到IDE的组件对象类数组。
另外,这里要提出需要注意的一点就是,虽然Delphi本身是不区分
大小写的,但是记得这个组件注册的过程的Register必须是这个样子,而不能变成小写register这样,否则,组件就注册不上去了哈,同时,注
意,我在前面给TEdit1的新属性Alignment的声明是放在Published这个域中的,这是因为要想在IDE设计期环境能够看到这个属性,就
必须放在Published
相关文档:
DELPHI参数几个概念上的区别 收藏
引用参数:
引用参数用var关键字标示
procedure DoubleTheValue (var Value: Integer);
begin
Value := Value * 2;
end;在这种情况下,参数既把一个值传递给过程,又把新值返回给调用过程的代码。当你执行完以下代码时:
var
X: Integer;
begin
X : ......
附件资料
*指针的使用(代码)
示例:简单的指针应用
代码:
procedure TForm1.Button2Click(Sender: TObject);
var
a: Integer;
p: ^Integer;
begin
with self.Memo1.Lines do
begin
......
帮助页在http://delphi.about.com/cs/adptips2003/a/bltip0203_2.htm
自己在实现的过程中的具体过程如下:
function InstallInf(const PathName: string; hParent: HWND): Boolean;
var
instance: HINST;
begin
instance := ShellExecute(hParent,
PChar('open ......
Delphi TStream 详细介绍
Stream对象,又称流式对象,是TStream、THandleStream、TFileStream、TMemoryStream、TResourceStream和TBlobStream等的统称。它们分别代表了在各种媒介上存储数据的能力,它们将各种数据类型(包括对象和部件)
在内存、外存和数据库字段中的管理操作抽象为对象方法,并且充分利用了面向对 ......
Delphi U盘插入拨出检测:
1、新建工程;
2、在form1上放一个Label;
3、定义一个私有过程
procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;
完整代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics ......