TWinControl.Caption. Теряется маленькая русская буква я
Автор: Kuznetsov Alexey
Описание глюка:
- Создаешь новый проект;
- кидаешь на форму TGroupBox;
- в ObjectInspectore выбираешь свойство Caption;
- изменяшь его на: я (обязательно маленькая!!!) или на любую строку которая
начинается с я;
- запускаешь на выполнение;
- при выполении у меня на TGroupBox-е не было никакого Caption;
Куда-то он теряет Caption если он начинается с маленькой "я"... Этот глюк
будет наблюдаться у всех компонент, включая TForm, которые наследуются от
TWinControl
Причем этот глюк можно поймать, и не запуская проект на выполнение. Делаем
так:
- View Form as Text
- View Text as Form
и вуаля: Caption(ы) который начинался с
маленькой буквы "я", ушел в гору... Видимо, что то в механизме чтения из dfm не
переварило этой буковки.
Проверено на 3-х разных компьютерах.
КОММЕНТАРИЙ
Проверено (D5, NT4, W2K).
Выяснилось следующее.
- Проблема имеет место быть только под Windows 2000 (возможно, по наследству
осталась и в Windows XP).
- Анализ содержимого exe-файла тестового примера (компилировалось под W2K)
показал, что символ "я" в Caption присутствует.
- Отладка показала, что исчезновение происходит при вызове функции API
CreateWindowEx, один из параметров которой - Caption, содержащий первым символом
русскую "я" (код $FF в кодировке Win1251).
Очевидно, ошибка кроется в
недрах подсистемы Win32 операционки Windows 2000.
Комментарий от SHKoder'a
при большом желании это можно победить так:
procedure TForm1.FormCreate(Sender: TObject);
begin
GroupBox1.Caption := 'я';
GroupBox2.Caption := #1103;
end;
но глюк конешно есть и в WinXP и в Win2K3, в Delphi6 и Delphi7
|