我有一个 Tree 迭代的比较运算符。它使用 AnsiString 变量。我的问题是,当值看起来相等时,我没有得到相等的指示符(也就是没有从 System.AnsiStrings.CompareStr 得到 0)。我已经通过调试器查看了我的变量并单步执行了我的代码。两个变量都是 AnsiStrings,都是相同的值,并且没有空格。如果有帮助,CompareStr 返回 -65。
我可以忽略什么?这是我的代码。
function CompareNodes(idVal: pointer; ANode: TALStringKeyAVLBinaryTreeNode): Integer;
var
Key1, Key2: AnsiString;
begin
Key1 := PAnsiString(idVal)^;
Key2 := ANode.ID;
Result := System.AnsiStrings.CompareStr(Key1, Key2);
end;