2009-09-03 7 views
1

は、私は、IVEは、私はそれを使用したいユニットで、このヘルパー(ヘルパーが定義されているユニット)に含まTStringListの評価/修正(Ctrl + F7)ウィンドウでヘルパー機能を呼び出す?

TslHelper = class helper for TStringList 
    function DoSth: boolean; 
end; 

のヘルパーを書いたとしましょう。 は、デバッグ中に私がはCtrl +F7を打つと私は評価したい:

someStringList.DoSth 

私はそれが仕事を得る傾けます。出来ますか?

+0

私はそれを試してもうまく動作します。あなたはどんなエラーを出していますか? –

+0

Ctrl + F7を押して、評価/変更ウィンドウの 'someStringList.DoSth' と入力しましたか? – m0f0

答えて

3

クラスヘルパーは、新しいメソッドを現在のスコープに導入します。クラスヘルパーがスコープ内にない場合、そのクラスが助けるクラスであってもそのメソッドは有効になりません。だから、それを動作させるための第一歩は、プログラムの現在のポイントで有効になるクラスヘルパーであることを保証することです。

この要件を満たしてもまだ動作しない場合、おそらくデバッガはクラスヘルパーを認識しないことがあります。とにかくハックだと思うので、デバッガがそれらを認識しなかったら私はあまり驚かないでしょう。最終的に、クラスヘルパーは文法的な砂糖です。

function TStringList_DoSth(SL: TStringList): Boolean; 

方法のあなたの現在の実装を使用してその機能を記述し、あなたのクラスのヘルパーを実装するための関数を使用します:

これは次のように上記のクラスヘルパーは、同じように簡単に、スタンドアロン関数として書かれている可能性が
function TslHelper.DoSth: Boolean; 
begin 
    TStringList_DoSth(Self); 
end; 

通常のコードでclass-helperメソッドを引き続き呼び出すことはできますが、デバッガのスタンドアロン関数にフォールバックできます。

+0

実際に私はそれをした;] – m0f0

関連する問題