unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} type TStr12 = string[12]; {属性不接受 string[12], 只好定义成一个类型或使用 ShortString} TRec = record {定义结构 TRec} strict private {如果不使用 strict 修饰符, 在同一单元内的私有变量也是可以访问的} Fname: TStr12; Fage: Word; procedure Setage(const Value: Word); procedure Setname(const Value: TStr12); public property name: TStr12 read Fname write Setname; property age: Word read Fage write Setage; end; { TRec 属性要调用的方法实现} procedure TRec.Setname(const Value: TStr12); begin if Value='' then {这时可以提出一些条件, 譬如譬如姓名不能为空} Fname := '无名氏' else Fname := Value; end; procedure TRec.Setage(const Value: Word); begin if (Value<150) and (Value>=0) then {这时可以提出一些条件, 譬如年龄一般不会超过 150} Fage := Value else Fage := 0; end; //使用结构 procedure TForm1.Button1Click(Sender: TObject); var rec: TRec; begin rec.name := '张三'; {现在的 name 和 age 已经是属性了} rec.age := 800; ShowMessage(rec.name); {张三} ShowMessage(IntToStr(rec.age)); {0} rec.name := ''; rec.age := 18; ShowMessage(rec.name); {无名氏} ShowMessage(IntToStr(rec.age)); {18} end; end.