Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.04.2015, 14:22
Anton93 Anton93 вне форума
Прохожий
 
Регистрация: 20.02.2015
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Изменить кодировку в edit

Подскажите как изменить кодировку в Edit WINAPI. Вместо русских букв отображается всякая чушь. А английские все нормально.
Ответить с цитированием
  #2  
Старый 03.04.2015, 14:26
graers graers вне форума
Прохожий
 
Регистрация: 03.04.2015
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Anton93
Подскажите как изменить кодировку в Edit WINAPI. Вместо русских букв отображается всякая чушь. А английские все нормально.
Попробуй у Edit свойство OEMConvert установить True
Ответить с цитированием
  #3  
Старый 03.04.2015, 16:31
Anton93 Anton93 вне форума
Прохожий
 
Регистрация: 20.02.2015
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от graers
Попробуй у Edit свойство OEMConvert установить True
нет у меня форма создана через WINAPI в то числе и Edit через CreateWindowEx.
Ответить с цитированием
  #4  
Старый 03.04.2015, 18:21
CynicRus CynicRus вне форума
Прохожий
 
Регистрация: 26.02.2013
Сообщения: 30
Версия Delphi: Lazarus, XE 3.
Репутация: 10
По умолчанию

НУ тогда выстави ES_OEMCONVERT.
Ответить с цитированием
  #5  
Старый 03.04.2015, 19:05
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

На самом деле, там, наверное, шрифт правильный не выставлен, и используется умолчательный System, оставленный в XP для совместимости с Windows 3.x. Нужно разобраться и выставить через API правильный шрифт, вроде Tahoma.

А по большому счету, в ситуации на 2015-й год все приложения нужно создавать в юникоде, если нет противопоказаний. Даже в Delphi 7. Код же вручную пишется? Явно вызываем CreateWindowW и вперед!
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #6  
Старый 03.04.2015, 21:28
Anton93 Anton93 вне форума
Прохожий
 
Регистрация: 20.02.2015
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
На самом деле, там, наверное, шрифт правильный не выставлен, и используется умолчательный System, оставленный в XP для совместимости с Windows 3.x. Нужно разобраться и выставить через API правильный шрифт, вроде Tahoma.

А по большому счету, в ситуации на 2015-й год все приложения нужно создавать в юникоде, если нет противопоказаний. Даже в Delphi 7. Код же вручную пишется? Явно вызываем CreateWindowW и вперед!
вы правы использую шрифт Terminal, так как требуется, но из за этого получается криво(
я так понимаю ES_OEMCONVERT это стиль, и по этому его нужно записывать при создании самого Edit Верно?
Ответить с цитированием
  #7  
Старый 03.04.2015, 22:25
CynicRus CynicRus вне форума
Прохожий
 
Регистрация: 26.02.2013
Сообщения: 30
Версия Delphi: Lazarus, XE 3.
Репутация: 10
По умолчанию

Цитата:
Сообщение от Anton93
я так понимаю ES_OEMCONVERT это стиль, и по этому его нужно записывать при создании самого Edit Верно?

Именно. (10 символов).
Ответить с цитированием
  #8  
Старый 03.04.2015, 22:34
Anton93 Anton93 вне форума
Прохожий
 
Регистрация: 20.02.2015
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

не погло

Код:
1
2
3
4
5
6
7
8
9
Edit_1:= CreateWindowEx(WS_EX_CLIENTEDGE,
                         'Edit',
                         nil,
                         WS_CHILD or WS_VISIBLE or ES_WANTRETURN or ES_OEMCONVERT,
                         50, 33, 100, 30,
                         hWindow,
                         Edit__1,
                         hInstance,
                         nil);
Ответить с цитированием
  #9  
Старый 04.04.2015, 02:13
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Как понимаю, весь сыр-бор из-за желания использовать моноширинный текст? Так ведь на шрифте "Terminal" свет клином не сошёлся. Можно использовать "Lucida Console".
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Edit := CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit', nil,
                       WS_CHILD or WS_VISIBLE or WS_VSCROLL or ES_AUTOHSCROLL or ES_MULTILINE or ES_WANTRETURN,
                       10, 10, 300, 100,
                       Wnd, 100, hInstance, nil);
SendMessage(Edit, EM_REPLACESEL, 0, Integer(PChar('Сообщение: '#13#10)));
 
Font := CreateFont(-12, 0, 0, 0, 0, 0, 0, 0,
                   DEFAULT_CHARSET,
                   OUT_DEFAULT_PRECIS,
                   CLIP_DEFAULT_PRECIS,
                   DEFAULT_QUALITY,
                   DEFAULT_PITCH or FF_DONTCARE, 'Lucida Console');
 
SendMessage(Edit, WM_SETFONT, Font, 0);
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:15.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025