Тема: Классы
Показать сообщение отдельно
  #2  
Старый 09.12.2009, 20:37
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну если строго следовать заданию, то:

Код:
unit Unit1;

interface

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

type
  THuman = class
  private
    FLastName : String;
    FYearOfBirth : Integer;
    procedure SetYearOfBirth(Value : Integer);
  public
    constructor Create(ALastName : String; AYearOfBirth : Integer); virtual;
    function GetAge : Integer;

    property LastName : String read FLastName write FLastName;
    property YearOfBirth : Integer read FYearOfBirth write SetYearOfBirth;
  end;

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ THuman }

constructor THuman.Create(ALastName: String; AYearOfBirth: Integer);
begin
  FLastName := ALastName;
  FYearOfBirth := AYearOfBirth;
end;

function THuman.GetAge: Integer;
begin
  Result := Integer(YearOf(Date) - FYearOfBirth);
end;

procedure THuman.SetYearOfBirth(Value: Integer);
begin
  If Value < 1900 Then Raise Exception.Create('Год меньше 1900');
  FYearOfBirth := Value;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  H : THuman;
begin
  H := THuman.Create('Иванов',1985);
  ShowMessage(Format('Создан объект THuman:'#13#10'Фамилия: %s'#13#10'Год рождения: %d'#13#10'Возраст: %d',[H.LastName,H.YearOfBirth,H.GetAge]));
  H.Free;
end;

end.
Ответить с цитированием