Я обновил приложение с Delphi 2007 на Delphi 2010, все прошло нормально, за исключением одного оператора, который компилировался нормально, но не работает:
If Edit1.Text[1] in ['S','س'] then
ShowMessage('Found')
else
ShowMessage('Not Found')
Однако я знал, что в will нет, поэтому я изменил на CharInSet
If CharinSet(Edit1.Text[1],['S','س']) then
ShowMessage('Found')
else
ShowMessage('Not Found')
, но он никогда не работал, когда строка س
, но всегда работал с S
, но всегда работал с S
, даже я отливаю edt1. Text1 с AnsiChar не всегда работают арабские буквы.
Я делаю что-то не так, или это не то, как работает CharInSet
?, или это ошибка в CharinSet
?
ОБНОВЛЕНИЕ:
Мой большой друг Иссам Али предложил другое решение, которое отлично работает:
If CharinSet(AnsiString(edt1.Text)[1],['S','س']) then