类的属性与事件

首先我们看看类的属性与属性的自动完成功能

在这里我们构建一个类,类有Age属性

首先我们这样书写

  TMyClass = class
private
{ private declarations }
protected
{ protected declarations }
public
{ public declarations }
property Age : integer;
published
{ published declarations }
end;

第二步

在该类中任意位置 输入 Ctrl + Shift + C 将生成一下代码

  TMyClass = class
private
FAge: integer;
procedure SetAge(const Value: integer);
{ private declarations }
protected
{ protected declarations }
public
{ public declarations }
property Age : integer read FAge write SetAge;
published
{ published declarations }
end;

同时在实现区生成一下代码

procedure TMyClass.SetAge(const Value: integer);
begin
FAge :
= Value;
end;

这样我们就拥有了一个带Age属性的类,同时学习了属性的自动完成功能

接下来,我们看一下类的事件

举例:如果当我们上面这个类的Age属性等于100时,我们希望程序提示‘恭祝老寿星’,我们该怎么做呢

请看一下代码

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1
= class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

TMyEvent
= procedure of object;

TMyClass
= class(TComponent)
private
FAge: Integer;
FOnHundured: TMyEvent;
procedure SetAge(const Value: Integer);

{ private declarations }
protected
{ protected declarations }
public
{ public declarations }
constructor Creat;
procedure MyHundured;
property Age: Integer read FAge write SetAge;
property OnHundured: TMyEvent read FOnHundured write FOnHundured;
published
{ published declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
{ TMyClass }

constructor TMyClass.Creat;
begin
FOnHundured :
= MyHundured;
end;

procedure TMyClass.MyHundured;
begin
showmessage(
'恭祝老寿星');
end;

procedure TMyClass.SetAge(const Value: Integer);
begin
if (Value > 0) and (Value < 200) then

FAge :
= Value;
if Value = 100 then
OnHundured;
end;

procedure TForm1.btn1Click(Sender: TObject);
var
Mycla: TMyClass;
begin
Mycla :
= TMyClass.Creat;
Mycla.Age :
= 100;
end;

end.

当然,在上面这个类中,你可以用任何一个方法接管该类的OnHundured事件

转载于:https://www.cnblogs.com/s-Yang/archive/2011/09/03/2164644.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值