Форум » GUI » hwgui BROWSE русские символы » Ответить

hwgui BROWSE русские символы

vladru: Никак не могу добиться правильного отображения русских букв для базы с DOS-кодировкой Делаю всё как пишут на форуме. Изучил пример из hwgui dbc Ну вроде всё делаю как указано... Ан-нет отображаются крокозябры. (А если эту же базу открыть в dbchw с кодовой страницей RU866, то все ОК) Помогите!! Делаю так: REQUEST HB_CODEPAGE_RU1251 REQUEST HB_CODEPAGE_RU866 .. function Main() PUBLIC cAppCpage := "RU1251", cDataCpage := "RU866" hb_cdpSelect(cAppCpage) .. return function BrowseTest() .. dbUseArea(,,cDBFname,cAlias,lShared,lRdOnly,cDataCpage) ... потом BROWSE return Пробовал разные варианты ( когда и cAppCpage и cDataCpage == RU866, и др...) - ну всё-равно крокозябры.

Ответов - 4

AlexMyr: Вот рабочий пример [pre2] #include "hwgui.ch" REQUEST HB_CODEPAGE_RU866 REQUEST HB_CODEPAGE_RU1251 FUNC Main() local fnt_brw hb_cdpSelect( "RU1251" ) USE your_baza_866 codepage "RU866" INIT dialog odlg title "проверка" at 0, 0 size 700, 450 font fnt_brw @010, 010 browse brw1 database size 600, 300 @010, 350 ownerbutton bt_cp size 50, 24 TEXT "cp" ; ON click {|| iif( hb_cdpSelect() = "RU1251", hb_cdpSelect( "RU866" ), hb_cdpSelect( "RU1251" ) ), brw1:Refresh() } ; tooltip "click to change cp" hwg_createlist( brw1 ) odlg:activate() dbCloseAll() RETURN NIL [/pre2] и не бойтесь создавать самодостаточных примеров, чтобы не гадать, что не правильно.

vladru: AlexMyr Спасибо. Ваш пример конечно рабочий. Я тоже так всё делаю и благодаря примеру понял что ищу не там... Проблема оказалась в следующем: если не использую ADS - всё показывается правильно. Как только выполнил rddSetDefault("ADSNTX") - крокозябры. Закомментарил эту комманду или заменил на rddSetDefault("DBFNTX") - опять нормально. Сможете подсказать как бороться ?

Dima: vladru Попробуй AdsSetCharType(2, .t.)


vladru: Dima сначала не помогло - крокозябры Но заработало когда указал AdsSetCharType(2, .F.) Об этой функции в ads.hlp ни слова. Сам бы долго копал... Спасибо. А еще я посмотрел супер-пример hwgui/utils/dbc для ADS - там вместо вызова этой функции делается SET CHARTYPE TO OEM Проверил у себя - так тоже работает.



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