组件代码由于假设你已经熟悉delphi开发(它和般开发没什么区别)我们就直接贴出来并加上适当注释:
unit Clock;
erface
uses
SysUtils, Classes, Controls, StdCtrls,ExtCtrls;
type
TState=(StClock,StRunClock,StBackClock);//定义枚举类表示Control控件3种状态:时钟、跑表、倒计时钟
TClock = (TCustomLabel)
private
fState:TState;
fTimer:TTimer;//为什么使用这个组件作为我们组件私有成员就不用说了吧
RCD:.gif' />[1..8] of eger;//跑表中各个数位
fBeginTime:;//到计时时开始时钟,的所以没用TTime类型是为了在后面演示属性编辑器
fWakeTime:;//闹钟时间出于和上面同样理由
fAllowWake:boolean;//是否开启闹钟功能
fOnWakeUp:TNotyEvent;//为了使组件更加完美我们允许组件用户能够响应闹钟到来时时件
fOnTimeUp:TNotyEvent;//同上能够响应倒计时种完成时事件我们将发布这两个事件
function GetActive:boolean;//控制Timer是否工作以控制3种状态钟是否工作
procedure SetActive(Value:boolean);
procedure SetState(Value:TState);
procedure SetBeginTime(Value:);
procedure SetWakeTime(Value:);
protected
procedure WalkClock(sender:TObject);//作为时钟时走种事件
procedure RunClock(sender:TObject); //跑表
procedure BackClock(sender:TObject);//倒计时
public
constructor Create(AOwner:TComponent);override;//完成些化工作
procedure ReSetRunClock; //跑表和倒计时都需要个复位思路方法给组件使用者
procedure ReSetBackClock;
published
property State:TState read fState write SetState default StClock;//默认为时钟状态
property Active:boolean read GetActive write SetActive;//控制3种状态钟是否工作
property BeginTime: read fBeginTime write SetBeginTime;
property WakeTime: read fWakeTime write SetWakeTime;
property AllowWake:boolean read fAllowWake write fAllowWake;
property _disibledevent=BeginTime;
end;
end;
end.
为了测试我们组件现在你就可以安装这个组件包并建立个应用测试它了点击组件包窗体中即可(注意:但你安装了组件包当你想对组件修改时在修改了原代码以后只用点击组件窗体compile就可以了更新组件了)这时delphi组件页最后多出了我们定义页其中有了我们组件!
然而这个组件到目前为止仍然不够完善还不能正式发布给用户在下篇中我们将解决两个重要问题:1、给我们组件添加个默认图标2、将这个组件杂乱属性归类
最新评论