String 为什么';这不是同样的工作吗?

String 为什么';这不是同样的工作吗?,string,delphi,text,case,String,Delphi,Text,Case,为什么 if SameText(ListBox1.Items[i],Edit1.Text)=true then 不工作?它区分大小写(字符串有不同的大小写),但不能区分大小写。字符串是unicode。如果字符串具有相同的大小写,则它可以工作 谢谢 根据SysUtils.pas(Delphi XE),SameText“具有与CompareText相同的8位限制,并且在CompareText”中,比较操作基于每个字符的8位序数值,在将'a'..'z'转换为'a'..'z'之后,并且不受当前用户区域

为什么

if SameText(ListBox1.Items[i],Edit1.Text)=true then
不工作?它区分大小写(字符串有不同的大小写),但不能区分大小写。字符串是unicode。如果字符串具有相同的大小写,则它可以工作

谢谢

根据SysUtils.pas(Delphi XE),SameText“具有与CompareText相同的8位限制,并且在CompareText”中,比较操作基于每个字符的8位序数值,在将'a'..'z'转换为'a'..'z'之后,并且不受当前用户区域设置的影响。”

因此,您似乎正在尝试比较一些超出8位范围的字符


编辑:您应该尝试AnsiSameText。

您不需要
=true
部件!!你在某处犯了一个愚蠢的错误。什么是
ListBox1.Items[i]
,什么是
Edit1.Text
?它确实有效。您只是没有传递两个相同的字符串。因为我知道这两个函数在每个普通实例中都可以工作,所以您必须在某个地方犯一个愚蠢的错误……”在内部,AnsiSameText()使用Win32 API CompareStringW()函数(无论如何在Windows平台上)来处理一切-