скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

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






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook