网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
Delphi中DLL封装对象的几种方法整理及体会
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
701F-96EC-4201-9266-57F982805B6E}'']
  function Scroll(Info : pchar) : integer;
  end;
  TIBall = class(TObject)
  public
    constructor Create; virtual; abstract;
    destructor Destroy; virtual; abstract;
    function Play(info : pchar) : integer; virtual; abstract;
  end;
  TBallClass = class of TIBall;
implementation
end.
 
IncDemo.inc源文件:
type
  TCar = class(TObject)
  public
    function Run(info: pchar): integer; virtual; {$IFNDEF INCTEST} abstract; {$ENDIF}
  end;
 
ProDLLDemo.dpr源文件:
library ProDLLDemo;
uses
  SysUtils, Classes,
  UnitDLLDemo in ''UnitDLLDemo.pas'',
  UnitIDest in ''UnitIDest.pas'';
{$R *.res}
function GetNewspaper : TNewspaper;
begin
  result := TNewspaper.Create;
end;
function GetCircle : ICircle;
begin
  result := TCircle.Create;
end;
function GetBall : TBallClass;
begin
  result := TBall;
end;
function GetCar : TCar;
begin
  result := TCar.Create;
end;
exports
  GetNewspaper,
  GetCircle,
  GetBall,
  GetCar;
end.
 
UnitDLLDemo.pas源代码:
unit UnitDLLDemo;
{$DEFINE INCTEST}
interface
uses Sysutils, UnitIDest;
{$I IncDemo.inc}
{ ----- 利用纯虚和抽象类实现 ----- }
type
  TPaper = class(TObject)
  end;
  TNewspaper = class(TPaper)
  public
    constructor Create;
    destructor Destroy;
    function Read(info: pchar): integer; virtual;
  end;
{ ----- 利用接口实现 ----- }
type
  TShape = class(TInterfacedObject)
  end;
  TCircle = class(TShape, ICircle)
  public
    constructor Create;
    destructor Destroy;
    function Scroll(info: pchar): integer;
  end;
{ ----- 利用类引用实现 ----- }
type
  TBall = class(TIBall)
  public
    constructor Create;override;
    destructor Destroy;override;
    function Play(info : pchar) : integer; override;
  end;
implementation
{ TNewspaper }
constructor TNewspaper.Create;
begin
  inherited Create;
end;
destructor TNewspaper.Destroy;
begin
  inherited;
end;
function TNewspaper.Read(info: pchar): integer;
var
  str: string;
begin
  if info <> nil then
  begin
    str := self.ClassName;
    strCopy(info, PChar(str));
  end;
  result := 1;
end;
{ TCircle }
constructor TCircle.Create;
begin
  inherited Create;
end;
destructor TCircle.Destroy;
begin
  inherited;
end;
function TCircle.Scroll(info: pchar): integer;
var
  str: string;
begin
  if info <> nil then
begin
    str := self.ClassName;
    strCopy(info, PChar(str));
  end;
  result := 2;
end;
{ TBall }
constructor TBall.Create;
begin
  // inherited Create;
end;
destructor TBall.Destroy;
begin
  // inherited;
end;
function TBall.Play(info: pchar): integer;
var
  str: string;
begin
  if info <> nil then
  begin
   

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号