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

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于class helper 可能是从 Delphi 2007 增加的新语法的主要内容,如果未能解决你的问题,请参考以下文章

Django Crispy Forms、Bootstrap、helper.label_class 和 helper.field_class 不起作用

css css:helper-classes

Magento Helper Class Not Found 错误

如何用Delphi XE Android实现手机和wifi串行口模块通信

FastlaneCore::Helper::AppcenterHelper:Class (NameError) 的未定义局部变量或方法“所有者”

D.F.P Delphi Android Native Components classes.dex文件合并