type TMonth = 1..12; Tdate = 1..31; Ta = class private Fyear: Integer; Fmonth: TMonth; Fdate: Tdate; public procedure GetDate(var aYear: Integer; var Amonth: TMonth; var Adate: Tdate); constructor create(aYear: integer = 2012; Amonth: Tmonth = 12; Adate: Tdate = 21); end; var Form1: TForm1; implementation {$R *.dfm} constructor Ta.create(aYear: integer = 2012; Amonth: Tmonth = 12; Adate: Tdate = 21); begin inherited create; FYear := aYear; Fmonth := Amonth; Fdate := Adate; end; procedure Ta.GetDate(var aYear: integer; var Amonth: Tmonth; var Adate: Tdate); begin aYear := Fyear; Amonth := Fmonth; Adate := FDate; end; procedure TForm1.Button1Click(Sender: TObject); var MyDate: Ta; mYear: integer; mMonth: TMonth; mDate: Tdate; begin MyDate := Ta.create(2013,1,13); MyDate.GetDate(mYear, mMonth, mDate); ShowMessageFmt('%d年%d月%d日', [mYear, mMonth, mdate]); FreeAndNil(MyDate); end;