class helper 可能是从 Delphi 2007 增加的新语法

class helper 可能是从 Delphi 2007 增加的新语法, 因为感觉不太实用, 直到今天才测试了一下.

试过之后才知道: 挺有意思的! 基本功能就是修改已存在的类.

Txxx = class helper for T... {T... 表示已存在的类} {可以替换已存在的方法} {也可以有新的方法、成员}end;
//这之后再使用 T... 类及其子孙类时, 都会优先使用 Txxx 的修改.

例一:

unit Unit1;
interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton;
 procedure Button1Click(Sender: TObject);
 end;
 TMyClass = class function func1: string;
 function func2: string;
 end;
 TMyClassHelper = class helper for TMyClass function func1: string;
 {将把 TMyClass 的同名方法替换掉} function func3: string;
 {将为 TMyClass 及其子类增加这个方法} end;
var Form1: TForm1;
implementation{$R *.dfm}{ TMyClass }function TMyClass.func1: string;
begin Result := ‘TMyClass.func1‘;
end;
function TMyClass.func2: string;
begin Result := ‘TMyClass.func2‘;
end;
{ TMyClassHelper }function TMyClassHelper.func1: string;
begin Result := ‘TMyClassHelper.func1‘;
end;
function TMyClassHelper.func3: string;
begin Result := ‘TMyClassHelper.func3‘;
end;
//测试procedure TForm1.Button1Click(Sender: TObject);
var obj: TMyClass;
begin obj := TMyClass.Create;
 ShowMessage(obj.func1);
 {TMyClassHelper.func1} ShowMessage(obj.func2);
 {TMyClass.func2}

http://blog.csdn.net/qdseashore/article/details/7757197

原文地址:https://www.cnblogs.com/findumars/p/8207416.html

时间: 2024-10-05 19:43:52

class helper 可能是从 Delphi 2007 增加的新语法的相关文章

Delphi 2007体验!

Delphi 2007体验! baidu 内容摘要:CodeGear(From Borland) 公司公布了最新的Delphi 2007 For Win32版本号.作为一个 Delphi 的使用者,第一时间下载.安装并进行了体验,现将一些使用感受记录例如以下 CodeGear(From Borland) 公司公布了最新的Delphi 2007 For Win32版本号.作为一个 Delphi 的使用者,第一时间下载.安装并进行了体验,现将一些使用感受记录例如以下: 注:以下的对照主要是针对Del

验证码广告:站长增加收入新渠道

原味: http://www.cnblogs.com/lusongsong/p/3236105.html 以前,当我们登陆论坛或下载软件的时候会出现如下验证码, 还有更奇葩的, 往往遇到这种情况后,大多数人都会放弃登陆,这不仅用户体验非常差,而且往往会流失一大部分用户. 既然传统的验证码已经越来越不适应时代取代了,那么必将有新的代替品:「验证码广告」就是这样一个产物.目前这种形式在国外已初具规模,并被誉为“最 具前景的广告模式”之一,在国外这类广告颇受好评,Double Recall最早,201

delphi新语法之泛型实现的对象池模板

现在的DELPHI因为支持泛型的语法,所以也能支持模板编程了. // 标准模板 unit UntPools; interface uses Classes, SysUtils, UntThreadTimer; type { 这是一个对像池, 可以池化所有 TObject 对像 } { 用法: 在一个全局的地方定义 var Pooler: TObjectPool; 用到的地方 obj := Pooler.LockObject as Txxx; try finally Pooler.UnlockOb

程序猿二三事之Java基础--Java SE 5增加的特性--语法篇(一)

程序猿二三事之Java基础–Java SE 5增加的特性–语法篇(一) [ TOC ] 为什么是Java SE 5? 目前已经到了JDK-8u74了,JDK7的主版本已经于2015年4月停止公开更新. 那为什么还要来说Java/JDK5呢? Java SE在1.4(2002)趋于成熟,随着越来越多应用于开发企业应用,许多框架诞生于这个时期或走向成熟. Java SE 5.0的发布(2004)在语法层面增加了很多特性,让开发更高效,代码更整洁. 自动装箱/拆箱.泛型.注解.for循环增强.枚举.可

为Delphi程序增加UAC功能

相关资料:http://bbs.csdn.net/topics/320071356# 操作方法: 在Source\VCL目录下应该有这样两个文件sample.manifest和WindowsXP.rc,可以通过如下方法处理: 1.sample.manifest处理①打开“sample.manifest”②修改sample.manifest把其中的<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"><security&

Delphi 2007 的重构功能

Move 移动 1.将选定的静态函数从一个类移动到另一个类 2.将选中的类或接口移动到其他单元 Extract Interface 抽取接口 将选定的函数抽取到一个新的接口中 Extract Superclass 抽取基类 将选定的函数.属性.字段从一个类里抽取到一个基类中 Pull Member Up 将成员向上拉 1.将子类中的函数或字段移动到父类 2.将子接口中的函数移动到父接口 Push Members Down 将成员向下推 1.将父类中的字段或者函数移动到子类 2.将父接口中的函数移

delphi 2007 远程调试

Remote debugging lets you debug a RAD Studio application running on a remote computer. Once the remote debug server is running on the remote computer, you can use RAD Studio to connect to that computer and begin debugging. Prerequisites and security

delphi的流操作的语法

Delphi在这两方面都做的相当出色.在Delphi的早期版本Turbo Pascal 中就曾有流(Stream).群(Collection)和资源(Resource)等专门用于对象式数据管理的类.在Delphi中,这些功能得到了大大的加强.Delphi将对象式数据管理类归结为Stream对象(Stream)和Filer对象(Filer),并将他们应用于可视部件类库(VCL)的方方面面.他们不仅提供了在内存.外存和视窗系统资源中管理对象的功能,还提供了在数据库BLOB字段中对象的功能. 在本章中

Lazarus 1.6 增加了新的窗体编辑器&mdash;&mdash;Sparta_DockedFormEditor.ipk

一下是该控件官网的介绍 "Hello A package for a docked form editor can be found in : components/sparta/dockedformeditor/sparta_dockedformeditor.lpk It was first cleaned from component palette code and renamed in freesparta branch, then committed to trunk. Please