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

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

TComboBox: странность с Charset [D7, Win2k]


Firstborn ©   (2004-08-16 21:29:00) 

Имеется некий ComboBox, я пытаюсь поменять ему фонт через TComboBox.Font. Вроде бы всё в проядке, но есть одна проблема: кажется, этот контрол упорно не реагирует на изменения TComboBox.Font.Charset! Т.е. все остальные аттрибуты TFont меняются без проблем и это изменение видно, но изменения аттрибута TComboBox.Font.Charset не даёт ничего! причём подобной проблемы нет, например, у TEdit и TListView... Как такое объяснить и как с этим бороться?

P.S. Эффект можно наблюдать при любом TComboBox.Style.
P.P.S. Всё происходит в Delphi 7.
P.P.P.S. Задавал этот вопрос на RSDN, однако никто не смог ответить :(


Firstborn2   (2004-08-17 12:31:00) [1]

Попытаюсь объяснить... Есть некое слово, состоящее из латинских букв с парой датских символов. Этот текст нормально отображается при выборе Charset=ANSI_CHARSET, при DEFAULT_CHARSET вместо датской буквы появляются пусские - потому как дефолтная локаль у меня русская. Я делаю очень просто - во всех контролах, где такой текст может появится, выставляю Charset=ANSI_CHARSET. Выставляю для TEdit - ура, показывает датский символ. Выставляю для TListView - ура, показывает датский символ. Выставляю для TComboBox - хрена, показывает кириллицу, как будто бы я Charset и не менял.

Надеюсь, это хотя бы немного ситуацию прояснит.

Итак, есть ли идеи как с таким бороться?


Рамиль   (2004-08-17 08:42:00) [2]


> на button1 получаем "Кодовая страница"

button2


Рамиль   (2004-08-17 08:41:00) [3]

Что то я тебя не понял.


ComboBox1.Text := 'Кодовая страница';
...
procedure TForm1.Button1Click(Sender: TObject);
begin
 ComboBox1.Font.Charset := OEM_CHARSET;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 ComboBox1.Font.Charset := ANSI_CHARSET;
end;

Нажимаем на button1 получаем "что то не вразумительное" - буфер умный, конвертит обратно в ANSI:)
Нажимаем на button1 получаем "Кодовая страница"

Как еще по твоему он должен реагировать?


Cobalt   (2004-08-17 00:47:00) [4]

Может, вопрос задать поконкретней?
Как ты определял, что "не даёт ничего"???
И ещё - а должно ли что-то происходить? И что именно?


Наверх

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