I zostały zaktualizowane aplikacji z Delphi 2007 do Delphi 2010, wszystko poszło dobrze, z wyjątkiem jednego stwierdzenia, że skompilowany w porządku, ale nie działa, który jest:CharInSet nie działa z literami innymi niż angielskie?
If Edit1.Text[1] in ['S','س'] then
ShowMessage('Found')
else
ShowMessage('Not Found')
Jednak wiedziałem, że nie będzie, więc zmieniłem się CharInSet
If CharinSet(Edit1.Text[1],['S','س']) then
ShowMessage('Found')
else
ShowMessage('Not Found')
ale nigdy nie pracował, gdy ciąg jest س
, ale zawsze działa z S
, nawet ja rzucić edt1.Text 1 z AnsiChar to nie zawsze działa litery arabskie.
Robię coś źle, czy to nie jest sposób w jaki działa CharInSet
?, lub jest to błąd w CharinSet
?
UPDATE:
Mój wielki przyjaciel Issam Ali zaproponował inne rozwiązanie, które pracował w porządku, jak to:
If CharinSet(AnsiString(edt1.Text)[1],['S','س']) then
Jakie jest 'edt1'? – dan04
@ dan04, to TEdit, zmieniłem kod, aby pokazać, że jest edytowany zamiast edt –
Kompilator wysyła następujące ostrzeżenie z kodem CharinSet: [Ostrzeżenie DCC] Unit5.pas (30): W1061 Zwężenie ze stałą WideChar (# 0633) do AnsiChar stracił informacje –