he actualizado una aplicación de Delphi 2007 para Delphi 2010, todo fue bien, excepto una declaración que compila bien, pero no funcionaba, que es:CharInSet no funciona con letras que no sean inglesas?
If Edit1.Text[1] in ['S','س'] then
ShowMessage('Found')
else
ShowMessage('Not Found')
Sin embargo, sabía que en no, por lo que cambió a CharInSet
If CharinSet(Edit1.Text[1],['S','س']) then
ShowMessage('Found')
else
ShowMessage('Not Found')
pero nunca funcionó cuando la cadena es س
, pero siempre funciona con S
, yo tire la edt1.Text 1 con AnsiChar siempre no funciona letras árabes.
¿Estoy haciendo algo mal, o no funciona CharInSet
?, ¿o es un error en CharinSet
?
ACTUALIZACIÓN:
mi gran amigo Issam Ali ha sugerido otra solución que ha funcionado bien, ya que:
If CharinSet(AnsiString(edt1.Text)[1],['S','س']) then
¿Qué tipo es 'edt1'? – dan04
@ dan04, es TEdit, he cambiado el código para mostrar que es como edición en lugar de edt –
El compilador emite la siguiente advertencia con su código CharInSet: [Advertencia DCC] Unit5.pas (30): W1061 Estrechando la constante WideChar (# $ 0633) a AnsiChar perdió información –