3

文字列リストの一部で何が起こっているかをデバッグしている状況に陥ることがよくあります。たとえば、データは StringList[StartOfBlock] から StringList[EndOfBlock] の範囲で操作されています。StringList[LineNum] のように、その範囲内の 1 つ以上の変数インデックスを使用して、すぐに検査または監視できる可能性がありますが、範囲 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 に答える