Tôi đã cập nhật một ứng dụng từ Delphi 2007 đến Delphi 2010, tất cả mọi thứ diễn ra tốt đẹp, ngoại trừ một tuyên bố rằng biên soạn tốt nhưng không được làm việc đó là:CharInSet không hoạt động với các chữ cái không phải tiếng Anh?
If Edit1.Text[1] in ['S','س'] then
ShowMessage('Found')
else
ShowMessage('Not Found')
Tuy nhiên, tôi biết rằng trong sẽ không, vì vậy tôi đã thay đổi để CharInSet
If CharinSet(Edit1.Text[1],['S','س']) then
ShowMessage('Found')
else
ShowMessage('Not Found')
nhưng nó không bao giờ làm việc khi chuỗi là س
, nhưng luôn luôn làm việc với S
, thậm chí tôi cast edt1.Text 1 với AnsiChar nó luôn luôn không hoạt động chữ tiếng Ả rập.
Làm bất cứ điều gì sai, hoặc nó không phải là cách CharInSet
hoạt động ?, hoặc đó là một lỗi trong CharinSet
?
UPDATE:
lớn Bạn tôi Issam Ali đã gợi ý một giải pháp mà đã làm việc tốt vì nó:
If CharinSet(AnsiString(edt1.Text)[1],['S','س']) then
loại gì là 'edt1'? – dan04
@ dan04, đó là TEdit, tôi đã thay đổi mã để hiển thị nó là chỉnh sửa thay vì edt –
Trình biên dịch phát ra cảnh báo sau bằng mã CharInSet của bạn: [Cảnh báo DCC] Unit5.pas (30): W1061 Thu hẹp cho hằng số WideChar (# $ 0633) để AnsiChar mất thông tin –