以下のための文法クラスヘルパーについて...

https://www.cnblogs.com/del/archive/2009/10/13/1582789.html

クラスヘルパーは、Delphi 2007からのものであってもよい今日は唯一それをテストするまで感は、実用的ではないので、新しい構文を追加しました。

非常に興味深いの基本的な機能を:!知るしようとした後、既存のクラスを変更することです。

TXXX = T ... {ためのクラスヘルパー Tは... }既存のクラスを表す
  {既存の方法は、代替としてもよい}
  {新しい方法もメンバーであってもよい}
エンド。

この後の再使用してT ... //クラスとその子孫クラスは、変更さTXXXの使用を優先させて頂きます。


例1:
ユニットUnit1は。

インターフェース

使用して
  Windowsの、メッセージ、sysutilsの、バリアント、クラス、グラフィックス、コントロール、フォーム、
  ダイアログ、StdCtrls;

入力
  TForm1 =クラス(TFormは)
    ボタン1:のTButtonと、
    手続きButton1Click(送信者:TObjectを);
  終わり;

  TMyClass =クラス
    関数func1の:文字列。
    関数func2を:文字列。
  終わり;

  TMyClass = TMyClassHelperのためのヘルパークラス
    関数func1の:文字列; {TMyClassスワップに同じ方法置換する}
    関数FUNC3:文字列; {そのサブクラスのメソッドTMyClass増加する}
  終了。

だった
  のForm1 TForm1には、

実装

{$ R * .DFM}

{} TMyClass

機能TMyClass.func1:文字列。
始める
  の検索結果を:= 'TMyClass.func1';
終わり;

機能TMyClass.func2:文字列。
始める
  の検索結果を:= 'TMyClass.func2';
終わり;

{} TMyClassHelper

機能TMyClassHelper.func1:文字列。
始める
  の検索結果を:= 'TMyClassHelper.func1';
終わり;

機能TMyClassHelper.func3:文字列。
始める
  の検索結果を:= 'TMyClassHelper.func3';
終わり;

//测试
手順TForm1.Button1Click(送信者:TObjectを);
VAR
  ; TMyClass:OBJ
開始
  OBJ:= TMyClass.Create。

  ShowMessage(obj.func1)。{TMyClassHelper.func1}
  ShowMessage(obj.func2)。{TMyClass.func2}
  ShowMessage(obj.func3)。{} TMyClassHelper.func3

  obj.Free;
終わり;

終わり。


例2:この例のTControlはTControlの後、クラスメソッドに増加し、その子孫のすべてが、このメソッドを持っています。
ユニットUnit1は、

インターフェース

使用して
  Windowsの、メッセージ、sysutilsの、バリアント、クラス、グラフィックス、コントロール、フォーム、
  ダイアログ、StdCtrls;

入力
  TForm1 =クラス(TFormは)
    ボタン1:のTButtonと、
    手続きButton1Click(送信者:TObjectを);
  終わり;

  TMyClassHelper =のTControlのためのクラスヘルパー
    手順MyMsg。
  終わり;

だった
  のForm1 TForm1には、

実装

{$ R * .DFM}

{} TMyClassHelper

TMyClassHelper.MyMsg手順;
始める
  ShowMessageFmt([名、クラス名] 'クラス名が%S%である');
END;

テスト@:このテストは現在のボタンと現在のフォームは、それらはTControlクラスから継承されている
手順TForm1.Button1Click(送信者:TObjectを)
開始
  Self.MyMsg; Form1の{}クラス名TForm1
  のTButton(送信者)。 MyMsg; {Button1をクラス名} TButton1
エンド。

終わり。

公開された444元の記事 ウォン称賛25 ビュー180 000 +

おすすめ

転載: blog.csdn.net/ozhy111/article/details/103344768