Текущий архив: 2011.02.06;
Скачать: CL | DM;
ВнизВопрос про WideChar Найти похожие ветки
← →
cyber-pilot (2010-11-15 13:09) [0]Есть код:
procedure TForm1.btn1Click(Sender: TObject);
var
s: WideString;
vChar: WideChar;
begin
s := "ж";
vChar := s[1];
if (vChar >= "а") and (vChar <= "я") then
ShowMessage("Сработало!!!");
end;
procedure TForm1.btn2Click(Sender: TObject);
var
vChar: WideChar;
begin
vChar := "ж";
if (vChar >= "а") and (vChar <= "я") then
ShowMessage("Сработало!!!");
end;
Кто-нибудь может объяснить почему во втором случае срабатывает условие, а в первом нет?
← →
Игорь Шевченко © (2010-11-15 13:14) [1]
> Кто-нибудь может объяснить почему во втором случае срабатывает
> условие, а в первом нет?
Конечно, и этот кто-то - отладчик
← →
Anatoly Podgoretsky © (2010-11-15 13:46) [2]Может у тебя Д2007-
← →
cyber-pilot (2010-11-15 13:51) [3]
> Конечно, и этот кто-то - отладчик
Под отладчиком я конечно же запускал. В первом случае отладчик показывает, что в vChar находится "ж", но при этом не хочет сравнивать. Во втором случае в vChar оказывается какой-то иероглиф, но при этом сравнивается правильно.
> Может у тебя Д2007-
Да, у меня Д2007. Это что-то меняет?
← →
Anatoly Podgoretsky © (2010-11-15 13:59) [4]Меняет, "ж" это AnsiString
А s := "ж"; это WideChar
← →
cyber-pilot (2010-11-15 14:18) [5]А как в таком случае проверить, что WideChar-символ является русской буквой?
← →
Anatoly Podgoretsky © (2010-11-15 14:25) [6]> cyber-pilot (15.11.2010 14:18:05) [5]
У тебя весь код неправильный, надо прямое приведение для всех литералов,
иначе будешь постоянно ходить по граблям.
Нельзя писать "a", надо WideChar("a");
← →
cyber-pilot (2010-11-15 14:41) [7]
> Anatoly Podgoretsky © (15.11.10 14:25) [6]
А... понятно. Спасибо!
Страницы: 1 вся ветка
Текущий архив: 2011.02.06;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.003 c