Форум » GUI » IDE8 » Ответить

IDE8

Новичок: Можете на простом примере показать: 1. На примере TEXTBOX вводились символы UTF8 2. На примере LABEL - соответственно выводились

Ответов - 125, стр: 1 2 3 4 5 6 7 All

rvu: SergKis пишет: у вас русский windows и др. языки будут искажаться на ерунду Я нечто подобное подозревал: rvu пишет: Или чего-то не хватает или я вообще что-то делаю не так. Если я свою программу скопирую на немецкую винду, то там будут кракозябры? Да, это очевидно. А если там в винду русский текст добавлен? Как-то пришлось под немецкой виндой что-то делать, но я тогда с консолью работал, 866 страницей, что-то менял в настройках, потом отдавая компьютер хозяину, вернул эти изменения на место. А страница 1251 у него и так есть. Вот если я у себя добавлю в винду, например, польский язык, я увижу их корректный текст в программе?

SergKis: rvu Вы же уже попробовали на рус. windows Вообще такое ощущение, что программа у меня только с русским языком дружит: SET CODEPAGE TO SPANISH SET LANGUAGE TO SPANISH AlertInfo(hb_Utf8ToStr('Ññ',"ESWIN")) // неправильно показывает AlertInfo(hb_Utf8ToStr('Проба текста',"RU1251")) // всё работает Как-то пришлось под немецкой виндой что-то делать, но я тогда с консолью работал, 866 страницей У нас немцы приходили с линуксом, clipper и ads в начале 2000х, но их выжили. Вот если я у себя добавлю в винду, например, польский язык, я увижу их корректный текст в программе? Нет, надо что бы windows был на польском. У нас, как правило, ставят windows клиенты с LVWIN (нац. озабоченные) и с RU1251 остальные и когда делал пример с тсб и hardset имел ввиду на 1ой в prg ставлю codepage LVWIN (1257), на 2ой RU1251. В Language системы 3и языка EN, LV, RU (как минимум)

SergKis: PS Лат. windows - это все сообщения, меню, кнопки, титулы ... все на латышском (веселуха еще та, т.к. могут отличаться от EN вариантов)


rvu: SergKis пишет: Нет, надо что бы windows был на польском. У нас, как правило, ставят windows клиенты с LVWIN (нац. озабоченные) и с RU1251 остальные и когда делал пример с тсб и hardset имел ввиду на 1ой в prg ставлю codepage LVWIN (1257), на 2ой RU1251. В Language системы 3и языка EN, LV, RU (как минимум) Не понимаю. На винде с RU1251 это у вас работает? А если я добавлю язык разве у меня не будет - В Language системы "3и языка (как минимум)"? Т.е. я не понимаю, как у вас три языка и больше, если они не добавлены потом в национальный виндоус. Если у вас ставят windows клиенты с LVWIN, разве они потом не добавляют русский, как я польский (или немецкий) хотел для примера добавить?

SergKis: rvu пишет Если у вас ставят windows клиенты с LVWIN, разве они потом не добавляют русский, как я польский (или немецкий) хотел для примера добавить? Для unicode добавляйте сколько надо языков, для не unicode hmg что стоит в Region control panel. У меня windows EN, Region - Russian, Local - Latvia. Languge - EN, LV, RU. Для hmg LVWIN недоступен Region - Latvia, Local - Latvija. Languge - EN, LV, RU. Для hmg RUSSIAN недоступен Как работать в hb VWT режиме смотрите тексты hbedit редактора (не GUI), кусочек[pre2] ... hb_cdpSelect( "RU866" ) @ 09, 10, 15, 72 BOX "┌─┐│┘─└│ " @ 13, 20 SAY "├" @ 13, 60 SAY "┤" @ 13, 11 TO 13, 71 hb_cdpSelect( oEdit:cp ) @ 10, 12 SAY "Open file" @ 12, 12 SAY "[ ] ReadOnly" @ 12, 27 SAY "[ ] In a current window" ... [/pre2] т.е. рамочки ru866, надписи en, oEdit:cp - выбранный язык текста

rvu: Т.е. это "Язык программ не поддерживающих Юникод"? Я могу выбрать немецкий, тогда у меня всё в Минигуи на немецком заработает, но вместо русского?

SergKis: rvu пишет Я могу выбрать немецкий, тогда у меня всё в Минигуи на немецком заработает, но вместо русского? Да. Только тсб можно исп. для отображения с исп. chardset, т.е. для DE надо знать номер charset, что бы исп. с RUSSIAN cdp. Примечание для GUI интерфейса. Если исп. unicode HwGui, там таблицы это как BROWSE в hmg и если вам нужны многострочные строки, заголовки, подножия, superheader, то этого там нет

SergKis: PS Есть пример в минигуи с _MIXEDMODE_ с запуском окна ShowConsole( cConsoleTitle ) ... HideConsole( cConsoleTitle ) посмотрите, может под ним можно организовать ввод DE данных. Я не смотрел за ненадобностью, просто вспомнил про _MIXEDMODE_

SergKis: PS2 Посмотрел пример BASIC\MixedMode, в build.bat вместо gtwin исп. gtwvt -> получил окно wvt. Так понимаю, что редактор hbedit можно встроить в такие окна (gtwin, gtwvt) и работать с текстами в разных кодировках, потом писать тексты можно в dbf

rvu: Подумалось, а если сделать свой шрифт? Взять готовый фонт и заменить какие-нибудь русские буквы немецкими. Далее подключить этот фонт к винде и указывать его в нужных контролах. Работать с ним, как с обычным русским текстом, для харбора и для базы он таким и будет, только показываться будут символы из особого фонта. Заменить русские буквы, которые на тех клавишах, что на немецкой клавиатуре. Можно сделать и виртуальную клавиатуру для ввода этих знаков. Как такая идея? Реализуема? Хочу сразу много критики, чтобы время впустую не тратить.

SergKis: rvu Вы посмотрели тексты hbedit ? Можно для начала взять для -gtwvt установки для окна[pre2] ... IF Empty( nScreenH ) nScreenH := 25 ENDIF IF Empty( nScreenW ) nScreenW := 80 ENDIF IF nScreenH != 25 .OR. nScreenW != 80 IF !SetMode( nScreenH, nScreenW ) nScreenH := 25 nScreenW := 80 ENDIF ENDIF ... IF Empty( cFontName ) hb_gtinfo( HB_GTI_FONTNAME, "Lusida console" ) ELSE hb_gtinfo( HB_GTI_FONTNAME, cFontName ) ENDIF IF Empty( nFontWidth ) hb_gtinfo( HB_GTI_FONTWIDTH, Int( ( hb_gtinfo( HB_GTI_DESKTOPWIDTH ) / nScreenH ) ) ) ELSE hb_gtinfo( HB_GTI_FONTWIDTH, nFontWidth ) ENDIF IF Empty( nFontHeight ) hb_gtinfo( HB_GTI_FONTSIZE, Int( ( ( hb_gtinfo( HB_GTI_DESKTOPHEIGHT ) - 64 ) / nScreenW ) ) ) ELSE hb_gtinfo( HB_GTI_FONTSIZE, nFontHeight ) ENDIF IF yPos != Nil hb_gtinfo( HB_GTI_SETPOS_XY, xPos, yPos ) ENDIF hb_gtinfo( HB_GTI_CLOSABLE, .F. ) IF lMaximize hb_gtinfo( HB_GTI_MAXIMIZED, .T. ) ENDIF hb_cdpSelect( "UTF8" ) [/pre2] и GET ввод уже будет utf8. Имея handle окна им можно управлять, скрывая, поднимая, располагая в нужных местах и уст. кол-во строк и ширину и т.д. Т.е. МиниГуи обеспечивает интерфейс RUSSIAN\EN + отображение тсб таблицы с charset языками, окно gtwvt ввод и просмотр de и др. языков, отличных от RUSSIAN

rvu: SergKis пишет: Т.е. МиниГуи обеспечивает интерфейс RUSSIAN\EN + отображение тсб таблицы с charset языками, окно gtwvt ввод и просмотр de и др. языков, отличных от RUSSIAN SergKis пишет: Повторю, MiniGui однобайтная, как и hb сборка с ней. Т.е. нужно будет собирать часть программы в МиниГуи, а часть в другом харборе и писать обмен данными через базы? А насчет моей идеи что скажете? Просто интересно. Может, сразу забракуете, возможно, я о чем-то не подумал. Хотя бы теоретически это может быть реализуемо?

SergKis: rvu пишет Т.е. нужно будет собирать часть программы в МиниГуи, а часть в другом харборе и писать обмен данными через базы? Пример BASIC\MixedMode посмотрите, там два окна есть сразу, можете даже переключаться между ними (gtwin окно минимизировано). Т.е. в _MIXEDMODE_ одна прогр. MiniGui и два интерфейса, окно gtwin\gtwvt и окна GUI А насчет моей идеи что скажете? Просто интересно. Может, сразу забракуете, возможно, я о чем-то не подумал. Хотя бы теоретически это может быть реализуемо? Вы описали фонт как LV866 3-и языка, но работает он в unicode сборке.

rvu: SergKis пишет: Пример BASIC\MixedMode посмотрите, там два окна есть сразу Я смотрел с окном gtwvt. Мне непонятно, как эти данные программа минигуи будет обрабатывать, если она однобайтная.

rvu: SergKis пишет: Вы описали фонт как LV866 3-и языка Нет, кодировка такая же, 1251, но есть особый фонт, где часть русских букв заменена. Пишется, допустим, font ‘MyArial’. А в нем по коду русской буквы выдается начертание немецкой.

SergKis: rvu пишет Нет, кодировка такая же, 1251 Так и LV866 это RU866, где часть псевдогрфики заменена, а FR, LV, ... (26 языков европы) куда денете. Не проще ли hmg тексты перевести в unicod ? ВААЩЕ пробблем не будет.

SergKis: rvu пишет Мне непонятно, как эти данные программа минигуи будет обрабатывать, если она однобайтная. Так данные в utf8. Присваиваете программе hmg имя SET STATIONNAME TO "MAINPROC" для передачи данных по сообщению и передаете, если надо в hmg SendData( "MAINPROC", R2 ) // ф-я FN1 или пишете в раздельно открытый dbf поле в кодировке utf8 REPLACE U_FLD1 with R2 а в hmg передаете, что работа в wvt закончена, например SendData( "MAINPROC", 1 ) // типа код завершения в GUI окне получив команду можете для тсб сделать :Refresh() или :DrawSelect() - перепоказать таблицу или строку Не помню, оч. давно не работал с gtwvt, можно ли там поймать сообщение WM_COPYDATA, а то можно было бы организовать обмен командами, но в принципе и то что есть много что дает по мне, для работы в однобайтной среде

SergKis: PS Стандартные контролы не покажут ничего с de, это ложится на окно gtwvt, тсб должна показать колонку по фонту с charset для DE oCol:bData := {|| hb_UtfToStr((oBrw:cAlias)->U_FLD1, "DEWIN") } oCol:hFont := GetFontHandle("FONT_DE") надо пробовать

SergKis: PS2 SergKis пишет или пишете в раздельно открытый dbf поле в кодировке utf8 Сори, это одна программа, можно передать в FN1 алиас и не надо повторного открытия

rvu: SergKis пишет: а FR, LV, ... (26 языков европы) куда денете Мне в ближайшее время актуальны только Германия и Франция. И то это не очень срочное дело. В идеале мне, конечно, нужен utf8, а это костыли какие-то. Но отдельные окошки в другой программе это тоже некий костыль и придется передавать кучу данных туда сюда. Но, это более универсальный способ, хотя, наверное, более трудоемкий. А есть надежда на появление utf8 в Минигуи? Это зависит от Григория?



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