linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > Delphi >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·HexToStr函数和StrToHex函数
·Delphi中的进制转换
·delphi轻松设置无边框透明窗体
·delphi第三方控件安装(Ehlib)
·DELPHI组件安装全攻略
·delphi动态创建控件
·开发工具比较Visual C++ VS De
·delphi完整身份证效验程序实例
·delphi中的Format函数详解
·delphi编程获取打印机的打印任
·如何判断文本文件的编码格式
·深入研究Variant数组
·用delphi编写网络游戏的外挂
·Delphi技巧-用户自定义数据类型
·delphi设置控件透明
最新文章
·在应用程序中跟踪MOUSE的坐标
·压缩和修复MS Access 2000文件
·DELPHI 6.0 动画制做
·怎样在Delphi中调用LastError信
·怎样得到主域服务器名称
·怎样利用递归实现删除某一目录
·读出主键下所有项
·如何制作照片底片效果的图像(
·获得Modem的状态
·WebBrowser屏幕滚动的实现,设
·有关字符串处理的小技巧
·Delphi建立键盘鼠标动作纪录与
·Delphi中布尔类型辨析
·DELPHI程序注册码设计
·图形的不规则的Copy
Google
 
delphi2006语言新特性:帮助类(Class Helpers)
[ 作者:  加入时间:2007-10-30 15:06:03  来自:Linux联盟收集整理 ]
帮助类(Class Helpers)dTiLinux联盟
dTiLinux联盟
dTiLinux联盟
帮助类是联合其它类的一种类型,它能为联合类(包括它的派生类)增加方法和过程。它为我们提供了一种不使用inheritance来扩展一个类的能力,你可以在任何地方使用帮助类,编译器自动决定在什么时候使用原始类还是增加的帮助类。(注意:帮助类只是一种扩展一个类的方法,但是应该仅仅在为实现某种新目的而开发新代码时被使用,而不应该视为一个设计工具被使用。它是绑定语言和平台RTL的 )dTiLinux联盟
dTiLinux联盟
定义一个帮助类的语法:dTiLinux联盟
dTiLinux联盟
dTiLinux联盟
typedTiLinux联盟
identifierName = class helper [(ancestor list)] for classTypeIdentifierNamedTiLinux联盟
memberListdTiLinux联盟
end;
dTiLinux联盟
dTiLinux联盟
ancestor list是可选的dTiLinux联盟
一个帮助类不可以定义实例数据,但允许有类字段(class fields)dTiLinux联盟
可见性规则与memberList语法与一般的类一样dTiLinux联盟
一个简单类可定义并联合多个帮助类,然而,只有一个在源代码中特殊位置的帮助类才能被应用。在最近的范围被定义了的帮助类将应用。帮助类的范围是由delphi风格决定的(在单元中uses子句,由右到左)dTiLinux联盟
(呵呵,上面这段翻译的好像不太准,暂且这样吧,欢迎指正)dTiLinux联盟
dTiLinux联盟
下面演示定义一个帮助类:dTiLinux联盟
dTiLinux联盟
typedTiLinux联盟
TMyClass = classdTiLinux联盟
procedure MyProc;dTiLinux联盟
function  MyFunc: Integer;dTiLinux联盟
end;dTiLinux联盟
dTiLinux联盟
...dTiLinux联盟
dTiLinux联盟
procedure TMyClass.MyProc;dTiLinux联盟
var X: Integer;dTiLinux联盟
begindTiLinux联盟
  X := MyFunc;dTiLinux联盟
end;dTiLinux联盟
dTiLinux联盟
function TMyClass.MyFunc: Integer;dTiLinux联盟
begindTiLinux联盟
  ...dTiLinux联盟
end;dTiLinux联盟
dTiLinux联盟
...dTiLinux联盟
dTiLinux联盟
type dTiLinux联盟
TMyClassHelper = class helper for TMyClassdTiLinux联盟
procedure HelloWorld;dTiLinux联盟
function MyFunc: Integer;dTiLinux联盟
end;dTiLinux联盟
dTiLinux联盟
...dTiLinux联盟
dTiLinux联盟
procedure TMyClassHelper.HelloWorld;dTiLinux联盟
begindTiLinux联盟
  writeln(Self.ClassName);
// Self是TMyClass 类, 不是TMyClassHelperdTiLinux联盟
   end;dTiLinux联盟
dTiLinux联盟
function TMyClassHelper.MyFunc: Integer;dTiLinux联盟
begindTiLinux联盟
  ... dTiLinux联盟
end;dTiLinux联盟
dTiLinux联盟
...dTiLinux联盟
dTiLinux联盟
var dTiLinux联盟
X: TMyClass;dTiLinux联盟
begindTiLinux联盟
  X := TMyClass.Create;dTiLinux联盟
  X.MyProc;    
// 调用TMyClass.MyProcdTiLinux联盟
  X.HelloWorld;
// 调用TMyClassHelper.HelloWorlddTiLinux联盟
  X.MyFunc;    //调用TMyClassHelper.MyFunc
dTiLinux联盟
注意,帮助类的MyFunc函数被调用,因为它的优先于实际的类dTiLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·delphi2006语言新特性:Record类型高级用法  (2007-10-30 15:05:26)
 ·Delphi2006下载安装预览  (2007-10-12 21:44:14)