Автор | Сообщение |
|
| |
Пост N: 17
Зарегистрирован: 05.02.19
|
|
Отправлено: 05.08.19 15:23. Заголовок: Не корректная кодировка в GUI Browse() по файлу DBF в ДОСовской кодировке: Harbiur 3.20 + hwgui.
Добрый день! Ситуация хочу по файлу DBF в ДОСовской кодировке построить GUI BROWSE. Использую Harbiur 3.20 + hwgui. Установленная кодировка при загрузке программы - hb_cdpSelect( "RU1251" ) Открываю файл dbUseArea(.T.,"DBFCDX" ,'S_','S_', , , "RU866" ) Далее формирую табличный просмотр: INIT DIALOG oDlg TITLE "Browse" @ 10 ,10 BROWSE oBrwDb DATABASE SIZE 580, 385 …. …. oBrwDb:alias := S_ oBrwDb:AddColumn( HColumn():New( TRS("Наименование"), {|| field->NAME } ,'C',55,0,.T. ) ) …. oDlg:Activate() …. FUNCTION TRS( pcString ) RETURN RetVal := hb_Translate( pcString , "RU866", "RU1251" ) На экране отражаются русские символы в другой кодировке. Хотя при формировании окон, меню и сообщений функция TRS() работает корректно.
|
|
|
Ответов - 5
[только новые]
|
|
|
| постоянный участник
|
Пост N: 2719
Зарегистрирован: 17.02.12
|
|
Отправлено: 07.08.19 11:39. Заголовок: Aleksandr_D пишет На..
Aleksandr_D пишет цитата: | На экране отражаются русские символы в другой кодировке. Хотя при формировании окон, меню и сообщений функция TRS() работает корректно. |
| Сделайте так 1. Установленная кодировка при загрузке программы - hb_cdpSelect( "RU866" ) Кодировка prg файла RU866, тогда dbUseArea(.T.,"DBFCDX" ,'S_','S_') oBrwDb:AddColumn( HColumn():New( TRS("Наименование" ) , {|| field->NAME } ,'C',55,0,.T. ) ) 2. Установленная кодировка при загрузке программы - hb_cdpSelect( "RU1251" ) Кодировка prg файла RU1251, тогда dbUseArea(.T.,"DBFCDX" ,'S_','S_', , , "RU866" ) oBrwDb:AddColumn( HColumn():New( "Наименование", {|| field->NAME } ,'C',55,0,.T. ) ) кодировку будет обрабатывать hb
|
|
|
|
| постоянный участник
|
Пост N: 6382
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.08.19 13:26. Заголовок: Всем привет. У меня ..
Всем привет. У меня тоже беда с показом в Tsbrowse. Кодировка базы в RU866, а экран и исходники в RU1251. При первом показе ТСБ всё нормально, при перестроении условного индекса делаю DBCLEARINDEX() и на экране появляются кракозябы. Потом строится индекс и перечитываю базу: oBrw:Reset() oBrw:Refresh(.T.) Становиться показ нормальный. Это не критичная ошибка, но всё равно ОЧЕНЬ некрасиво. Что там можно подкрутить в ТСБ ?
|
|
|
|
| постоянный участник
|
Пост N: 2721
Зарегистрирован: 17.02.12
|
|
Отправлено: 07.08.19 14:03. Заголовок: Andrey Делай на вре..
Andrey Делай на время reindex и oBrw:rest() oBrw:Hide() для тсб, после oBrw:Refresh(.T.) oBrw:Show() DO EVENTS oBrw:SetFocus() или попробуй на время reindex и oBrw:lEnabled := .F. ( oBrw:Enabled(.F.) ) и потом oBrw:lEnabled := .T. ( oBrw:Enabled(.T.) )
|
|
|
|
| постоянный участник
|
Пост N: 6383
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.08.19 17:24. Заголовок: Спасибо, попробую ! ..
Спасибо, попробую !
|
|
|
|
| |
Пост N: 18
Зарегистрирован: 05.02.19
|
|
Отправлено: 09.08.19 12:25. Заголовок: Установленная кодировка при загрузке программы ...
Спасибо за ответ! Причина такого поведения оказалась: при вызове из терминального приложения Browse GUI - не определил объект фонт. oFont := HFont():Add( "Times New Roman",0,-18 ) oBrwDb:ofont := oFont
|
|
|
|