⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.pas

📁 主要介绍了Delphi中的DLL封装和调用对象技术
💻 PAS
字号:
unit Demo;

interface

uses
  SysUtils, Windows, Messages, Classes, Dialogs;

type
  TEngine = class(TObject)
  private
    FCapacity: Integer;
    FPower: Integer;
  public
    constructor create;
    procedure start;
    procedure stop;
  end;
  
  TWheel = class(TObject)
  private
    FNo: Integer;
    FSize: Integer;
    FTypeName: string;
    procedure check;
  public
    constructor create(size:Integer;TypeName:string;No:Integer);
  end;
  
  TVehicle = class(TObject)
  protected
    FColor: string;
    FMake: string;
    FTopSpeed: Integer;
    FWheel: TWheel;
    FWheels: TList;
    procedure SlowDown;
    procedure SpeedUp;
    procedure Start;
    procedure Stop;
  end;
  
  TBicycle = class(TVehicle)
  public
    constructor create; 
    destructor Destory;
    procedure ride;virtual;
  end;
  
  TCar = class(TVehicle)
  protected
    FEngine: TEngine;
  public
    constructor create;
    destructor Destory;
    procedure drive;virtual;
  end;

implementation


{
*********************************** TBicycle ***********************************
}
constructor TBicycle.create;
var
  i: Integer;
begin
  FColor:='白色';
  FMake:='永久';
  FTopSpeed:=20;
  ShowMessage(FColor+FMake+'车,最高时速:'+IntToStr(FTopSpeed));
  FWheels:= TList.Create;
  for i:=1  to 2 do
    FWheels.Add(TWheel.create(21,'B型自行车车轮',i));
end;

destructor TBicycle.Destory;
var
  i: Integer;
begin
  for i:=1  to 2 do
    TWheel(FWheels.Items[i]).Free;
  inherited;
end;

procedure TBicycle.ride;
begin
  start;
  speedUp;
  showmessage('自行车车行驶中...');
  SlowDown;
  Stop;
end;

{
************************************* TCar *************************************
}
constructor TCar.create;
var
  i: Integer;
begin
  inherited create;
  FEngine:=TEngine.create;
  FColor:='黑色';
  FMake:='红旗';
  FTopSpeed:=200;
  ShowMessage(FColor+FMake+'车,最高时速:'+IntToStr(FTopSpeed));
  FWheels:= TList.Create;
  for i:=1  to 4 do
    FWheels.Add(TWheel.create(36,'A型汽车车轮',i));
end;

destructor TCar.Destory;
var
  i: Integer;
begin
  for i:=1  to 4 do
    TWheel(FWheels.Items[i]).Free;
  FEngine.Free;
  inherited;
end;

procedure TCar.drive;
begin
  start;
  FEngine.start;
  speedUp;
  showmessage('汽车行驶中...');
  SlowDown;
  FEngine.stop;
  Stop;
end;

{
*********************************** TEngine ************************************
}
constructor TEngine.create;
begin
  Fcapacity:=1500;
  Fpower:=130;
end;

procedure TEngine.start;
begin
  ShowMessage(inttostr(Fcapacity)+'cc,'+inttostr(Fpower)+'匹马力的发动机发动了!');
end;

procedure TEngine.stop;
begin
  ShowMessage('发动机关闭了');
end;

{
*********************************** TVehicle ***********************************
}

procedure TVehicle.SlowDown;
begin
  ShowMessage('正在减速...');
end;

procedure TVehicle.SpeedUp;
begin
  ShowMessage('正在加速...');
end;

procedure TVehicle.Start;
begin
  ShowMessage('车子开始启动');
end;

procedure TVehicle.Stop;
begin
  ShowMessage('车子停下');
end;

{
************************************ TWheel ************************************
}
constructor TWheel.create(size:Integer;TypeName:string;No:Integer);
begin
  FSize:=size;
  FTypeName:=TypeName;
  FNo:=No;
  check;
end;

procedure TWheel.check;
begin
  ShowMessage('检查第'+IntToStr(FNo)+'个车轮。型号:'+FTypeName+' 大小:'+IntToStr(FSize));
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -