3

我经常发现自己在调试字符串列表的一部分中发生的事情,例如数据在 StringList[StartOfBlock] 到 StringList[EndOfBlock] 范围内被操作。该范围内的一个或多个变量索引可能可用,我可以快速检查或观察,例如 StringList[LineNum],但检查 StartBlock/Endblock 范围内的相邻字符串很麻烦。我可以在 StringList[LineNum+1] 上添加另一个手表,或者在 Ctrl-F7 检查器中修改表达式,但工作量很大;-(

我希望在 IDE 中永久显示 StringList[StartOfBlock] 到 StringList[EndOfBlock]。(如果该视图在 StartOfBlock/EndOfBlock 更改时发生更改,或者该视图可以刷新,那将是非常好的。)

我将如何在 IDE 中构建一些东西来实现这一点?

4

2 回答 2

8

创建一个全局函数:

function GetLines(AList: TStrings; AStart, AEnd: Integer): string;
var
  I: Integer;
begin
  Result := '';
  for I := AStart to AEnd do
    if I < AList.Count then
      Result := Result + AList[I] + sLineBreak;
end;

您可以观看此函数:GetLines(StringList, StartOfBlock, EndOfBlock) 但在观看设置中启用函数执行(允许函数调用复选框)。

于 2012-06-14T07:57:34.077 回答
3

对于 Delphi 版本 2010 及更高版本,您可以使用调试可视化工具来完全满足您的需求。已经内置了 TStrings 可视化工具。有关更多信息,请参见此处

于 2012-06-14T11:56:19.960 回答