Delphi类,属性,方法,事件构造函数实例

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils,
Unit1 in 'Unit1.pas';

//定义结构
type

TmyRecord = record
name:String;
age:Integer;
end;

//定义类
TmyClass=class(TObject)
Constructor Create(name:String;age:Integer;sex:String);
private
name:String;
age:Integer;
sex:String;
public
procedure Work;

end;
TmyEvent=procedure of object; //先定义一个特殊的类型,一个对象所属的过程类型;这是建立事件的前提
{Peoson类}
Person=class(TObject)

private
Fage:Integer;
FOnHundred:TmyEvent; //为刚刚定义的TmyEvent类指定一个变量: FOnHundred
procedure setAge(const value:Integer);

public
procedure SetOnHundred1;
procedure SetOnHundred2;
constructor Create;
property Age:Integer read Fage write SetAge;
property OnHundred:TmyEvent read FOnHundred write FOnHundred; //事件命名一般用on开始

end;
// Person类
constructor Person.Create();
begin
FOnHundred:= SetOnHundred1;{在对象建立时,我们先让事件调用SetOnHundred1方法}
end;

procedure Person.setAge(const value:Integer);
begin
if (value>0)and (value<200) then
Fage:=value;
if value=100 then
OnHundred; {当输入的年龄是100时,激活事件}
end;
procedure Person.SetOnHundred1;
begin
Writeln('OK');
end;
procedure Person.SetOnHundred2;
begin
Writeln('NG');
end;


//类实现
Constructor TmyClass.Create(name:String;age:Integer;sex:String);
begin
Self.name:=name;
Self.age:=age;
Self.sex:=sex;
end;

procedure TmyClass.Work;
begin
Writeln(Self.name+','+IntToStr(Self.age)+','+Self.sex);
end;


var
Rec:TmyRecord; //声明结构
Cls:TmyClass; //声明类
per:Person;
begin

//类的调用
Cls:=TmyClass.Create('李斯',18,'男');
Cls.Work();


//结构的调用
Rec.name:='zhangsan';
Rec.age:=18;
//使用事件

per:=Person.Create;
per.Age:=100;
per.FOnHundred:=per.SetOnHundred2;
per.Age:=100;
per.Free;

Writeln(cls.age);
Writeln(cls.name);
Writeln(cls.sex);

Writeln(Rec.name);
Writeln(Rec.age);

Readln;

end.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值