Форум » GUI » Не корректная кодировка в GUI Browse() по файлу DBF в ДОСовской кодировке: Harbiur 3.20 + hwgui. » Ответить

Не корректная кодировка в GUI Browse() по файлу DBF в ДОСовской кодировке: Harbiur 3.20 + hwgui.

Aleksandr_D: Добрый день! Ситуация хочу по файлу 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 новых

SergKis: 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

Andrey: Всем привет. У меня тоже беда с показом в Tsbrowse. Кодировка базы в RU866, а экран и исходники в RU1251. При первом показе ТСБ всё нормально, при перестроении условного индекса делаю DBCLEARINDEX() и на экране появляются кракозябы. Потом строится индекс и перечитываю базу: oBrw:Reset() oBrw:Refresh(.T.) Становиться показ нормальный. Это не критичная ошибка, но всё равно ОЧЕНЬ некрасиво. Что там можно подкрутить в ТСБ ?

SergKis: 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.) )


Andrey: Спасибо, попробую !

Aleksandr_D: Спасибо за ответ! Причина такого поведения оказалась: при вызове из терминального приложения Browse GUI - не определил объект фонт. oFont := HFont():Add( "Times New Roman",0,-18 ) oBrwDb:ofont := oFont



полная версия страницы