在评估/修改(Ctrl + F7)窗口中调用辅助函数?

时间:2009-09-03 14:26:59

标签: delphi debugging helper

让我说我为TStringList

编写了帮助器
TslHelper = class helper for TStringList
  function DoSth: boolean;
end;

然后我在我想要使用它的单元中包含了这个帮助器(定义了帮助器的单元)。 在调试过程中,我按 Ctrl + F7 ,我想评估:

someStringList.DoSth

我无法让它发挥作用。有可能吗?

1 个答案:

答案 0 :(得分:3)

类助手将新方法引入当前范围。如果类助手不在范围内,则其方法不会生效,即使它们帮助的类是。因此,使其工作的第一步是确保TslHelper是在程序中当前点生效的类助手。

如果您满足该要求,但仍然无效,则调试器可能根本无法识别类帮助程序。无论如何它们都是一个黑客攻击,所以如果调试器不能识别它们我也不会太惊讶。最终,课堂助手只是语法糖。上面的类帮助程序可以很容易地编写为独立函数,如下所示:

function TStringList_DoSth(SL: TStringList): Boolean;

使用您当前的方法实现编写该函数,然后使用该函数实现您的类助手:

function TslHelper.DoSth: Boolean;
begin
  TStringList_DoSth(Self);
end;

您可以继续在普通代码中调用class-helper方法,但是您可以回退到调试器中的独立函数。