我为我的 delphi7 IDE 创建了一个设计时包。我希望表单上的组件在设计时为我提供上下文菜单中的一些菜单项。当我调试包时,我可以看到我的代码被执行,但是当涉及到使用内置函数 PosEx 的一行时,这种行为让我感到困惑。在调试器中,我可以看到要搜索的文本包含要搜索的部分,但函数仍然返回 0!而且,如果我直接执行此操作(而不是在项目中使用它来调试 IDE),则一切正常。
这是我的代码:
function RemoveLeftOverPlaceHolders( var PIO_sTemplate: string);
var nStartPos: integer;
const JPCG_FOREACH_START = '{%foreach ';
begin
nStartPos := 0;
repeat
nStartPos := PosEx( JPCG_FOREACH_START, PIO_sTemplate, nStartPos ); // <-- nStartPos is always 0 !
if nStartPos > 0 then begin
...
end;
until nStartPos = 0;
end;
在 IDE 中执行期间是否可能更改字符串类型?(任何 ansistring-unicode 问题?)
编辑:我正在使用 GExperts 和 DelphiSpeedUp