如何在调试器中显示TStringList的内容?

Kum*_*r S 7 delphi debugging tstringlist

我想在调试应用程序时显示TStringList的全部内容.相反,我只是得到指针.Flist仅显示地址.

Bru*_*Gee 7

如果您使用的是Delphi 2010或更高版本,则调试器允许使用调试可视化工具.

对于旧版本,您可以在Watch窗口中或使用OutputDebugString转储Text属性的内容,但这很难阅读.您可以为列表的每个元素设置监视,但这仅适用于非常短的列表.

我可能会使用像CodeSiteSmartInspect这样的外部日志记录应用程序,它允许您在单个调用中转储TStringList的内容.


Klu*_*uge 5

检查 Text 属性。它是字符串列表的连接版本。


jro*_*nhi 2

我现在有了 D2010,就开始使用可视化工具。我曾经使用一个名为 CArray 的函数,它会返回一个字符串数组。如果我将 CArray(MyStringList) 添加到监视窗口,我将能够检查字符串列表的内容。我曾经受雇编写 VB6 代码,我有点喜欢用于转换为有用类型的各种“C”函数。用于字符串列表的 CArray 和用于 ClientDataset 字段的 CArray 对于调试最有用。

  function  CArray(List: TStrings): TStrArray; Overload;
  var i,
      iCount: Integer;
  begin
    iCount := List.Count;
    SetLength(Result, iCount);
    for i := 0 to Pred(iCount) do Result[i] := List[i];
  end;
Run Code Online (Sandbox Code Playgroud)