Delphi类,属性,方法,事件构造函数实例
2013-03-26 10:30
489 查看
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.
{$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.
相关文章推荐
- OC类的构造函数,析构函数与setter/getter属性实例方法
- 构造函数的方法和属性会复制给实例,但是原型中的方法和属性都不存在于实例中
- [原创]小例子说明类、属性、方法和事件、构造函数
- System.Data.Objects.ObjectContext 的 49个方法、7个属性、4个构造函数和2个事件(转)
- Vue2 实例属性 实例方法 实例事件
- [置顶] 什么叫构造函数,原型属性和方法,实例属性和方法以及构造函数原型和实例三者关系
- 类方法里面如果访问不到实例属性的时候怎么办
- 『转』Ext.form.ComboBox的各种属性、方法与事件
- IHTMLDocument2的所有成员、属性、方法、事件
- Windows Media Player 控件属性、方法、事件的用法
- VCL的通用属性,方法和事件 good
- 关于C#做出的小程序的调试细节 及 visible属性和几个C#中的事件方法
- VB.net 类、对象、字段、属性、方法、构造函数
- python私有属性和方法实例分析
- uploadify3.2 属性、事件、方法
- javascript学习笔记—event属性和方法以及window事件
- WinForms窗体常用属性、方法和事件
- 实例方法与实例事件
- 面向对象的编程:关于对象的 属性、方法和事件 的理解
- 【python】实例属性的显示方法-dir、__dict__