Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про WideChar


cyber-pilot ©   (2010-11-15 13:09:00) 

Есть код:

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;


Кто-нибудь может объяснить почему во втором случае срабатывает условие, а в первом нет?


cyber-pilot   (2010-11-15 14:41:00) [1]


> Anatoly Podgoretsky ©   (15.11.10 14:25) [6]

А... понятно. Спасибо!


Anatoly Podgoretsky   (2010-11-15 14:25:00) [2]

> cyber-pilot  (15.11.2010 14:18:05)  [5]

У тебя весь код неправильный, надо прямое приведение для всех литералов,
иначе будешь постоянно ходить по граблям.
Нельзя писать 'a', надо WideChar('a');


cyber-pilot   (2010-11-15 14:18:00) [3]

А как в таком случае проверить, что WideChar-символ является русской буквой?


Anatoly Podgoretsky   (2010-11-15 13:59:00) [4]

Меняет, 'ж' это AnsiString
А  s := 'ж'; это WideChar


cyber-pilot   (2010-11-15 13:51:00) [5]


> Конечно, и этот кто-то - отладчик

Под отладчиком я конечно же запускал. В первом случае отладчик показывает, что в vChar находится 'ж', но при этом не хочет сравнивать. Во втором случае в vChar оказывается какой-то иероглиф, но при этом сравнивается правильно.


> Может у тебя Д2007-

Да, у меня Д2007. Это что-то меняет?


Anatoly Podgoretsky   (2010-11-15 13:46:00) [6]

Может у тебя Д2007-


Игорь Шевченко   (2010-11-15 13:14:00) [7]


> Кто-нибудь может объяснить почему во втором случае срабатывает
> условие, а в первом нет?


Конечно, и этот кто-то - отладчик


Наверх

Титульная страница Поиск, карта сайта Написать письмо