Главная страницаОбратная связьКарта сайта

TWinControl.Caption. Теряется маленькая русская буква я

Автор: Kuznetsov Alexey

Описание глюка:

  1. Создаешь новый проект;
  2. кидаешь на форму TGroupBox;
  3. в ObjectInspectore выбираешь свойство Caption;
  4. изменяшь его на: я (обязательно маленькая!!!) или на любую строку которая начинается с я;
  5. запускаешь на выполнение;
  6. при выполении у меня на TGroupBox-е не было никакого Caption;

Куда-то он теряет Caption если он начинается с маленькой "я"... Этот глюк будет наблюдаться у всех компонент, включая TForm, которые наследуются от TWinControl

Причем этот глюк можно поймать, и не запуская проект на выполнение. Делаем так:

  1. View Form as Text
  2. View Text as Form
и вуаля: Caption(ы) который начинался с маленькой буквы "я", ушел в гору... Видимо, что то в механизме чтения из dfm не переварило этой буковки.

Проверено на 3-х разных компьютерах.

КОММЕНТАРИЙ

Проверено (D5, NT4, W2K).

Выяснилось следующее.

  1. Проблема имеет место быть только под Windows 2000 (возможно, по наследству осталась и в Windows XP).
  2. Анализ содержимого exe-файла тестового примера (компилировалось под W2K) показал, что символ "я" в Caption присутствует.
  3. Отладка показала, что исчезновение происходит при вызове функции 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


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "TWinControl.Caption. Теряется маленькая русская буква я", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2024 Дискета.info