Форум » [x]Harbour » Переход с GTWIN на GTWVT, все вопросы в одной теме. » Ответить

Переход с GTWIN на GTWVT, все вопросы в одной теме.

Sergy: Давайте обсудим вопросы, связанные с переходом на "усовершенствованный" терминал GTWVT. Для этого, как я понял, нужно лишь включить в текст программы пару строк: #include "hbgtinfo.ch" REQUEST HB_GT_WVT_DEFAULT Все, новый терминал подключен и работает. Не могу понять, как менять кодовую страницу шрифта. Сделал: hb_gtInfo( HB_GTI_FONTNAME, "Terminal" ) hb_gtInfo( HB_GTI_FONTWIDTH, 12 ) hb_gtInfo( HB_GTI_FONTSIZE, 28 ) Чтобы получить вот такой шрифт (присутствует в системе 100% и с ним работает Far и GTWIN): Но почему-то неожиданно на экране появились кракозябры, но шрифт именно тот, который я и хотел. При установке "по умолчанию" или "Lucida Console" все ок. Что я забыл ?

Ответов - 56, стр: 1 2 3 All

Sergy: Вопрос по GTWVG: Почему не отрабатывает команда hb_gtInfo( HB_GTI_SETPOS_XY , {x,y}) ? написал INIT/EXIT процедуры, сохраняющие состояние окна: выбранный шрифт, положение, начертание, размер и тп. В GTWVT - работает, тут - нет. Все восстанавливается, но окно - только по центру экрана. Каждый раз после запуска юзерам перетаскивать мышкой на "удобное" место - ппц радость какая...

SergKis: Sergy может надо использовать (см. wvgwin.c) HB_FUNC( WVG_MOVEWINDOW ) получи hb_Func список с *.c файлов - много интересного

Sergy: SergKis пишет: может надо использовать (см. wvgwin.c) HB_FUNC( WVG_MOVEWINDOW ) Хотелось-бы некой стабильности, чтобы не нужно было выискивать и переписывать отдельные вызовы при смене драйвера экрана. Ведь они должны отрабатывать одинаковые вызовы с однотипными результатами. Как оказалось, несовместимость формы вызова GTWVG драйвере. Пофиксено только что: 2014-09-18 00:23 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com) * contrib/gtwvg/gtwgud.c + Added: hb_gtInfo( HB_GTI_SETPOS_XY, { nRow|nX, nCol|nY } ) in addition to previous implementation.


SergKis: Sergy пишет:Хотелось-бы некой стабильности у меня WVG (hb 2.0) закончилась тестами с меню - все работало, мой товарищ перевел достаточно большую задачу (2.5 -года назад), все очень стабильно, но мы сразу ушли в MiniGUI. Т.е. мой товарищ перевел в gui полностью эту же задачу (клиентам больше нравится), а я в консоли на hb (bat-ы крутятся) заменяю режимы вызовами MiniGUI (справочники, вызов справочников в документах), грузится и работает очень быстро (все с LetoDb). И т.к. Linuks у нас в стране погиб, то WVT не актуален, а gui рулит. В MiniGui есть режим совмещенный с WVT, смотрел пример в поставке и все ..., детали надо проверять

SergKis: Sergy пишет:должны отрабатывать одинаковые вызовы с однотипными результатами. попробуй др. строку (hbgtinfo.ch) ... #define HB_GTI_SETPOS_XY 55 /* Get/Set current top-left position coordinates of the window by pixels */ #define HB_GTI_SETPOS_ROWCOL 56 /* Set current top-left position coordinates of the window by row/cols */

Sergy: Dima пишет: Использую под GTWVT , EXECANDWAIT ,работает нормально. BAT файлы запускать не пробовал , запускаю EXE. Только что обнаружил, что hb_ProcessRun() при вызове программы с GUI "замораживает" рабочее окно программы. Просто получается белый квадрат. Точно такое-же поведение дает EXECANDWAIT(), взятый отсюда: http://clipper.borda.ru/?1-4-0-00000327-000-40-0 Т.е. получается, если нужно дождаться завершения работы вызванной программы - hb_ProcessRun() или EXECANDWAIT(), но окно программы под GTWVT/GTWVG не обновляется. Совсем. Если нужно, чтобы окно обновлялось - нужен вызов ShellExecute(), но при этом программа не дожидается завершения... Может что-то я упустил ? Спасибо

azoo: У меня строчка указана: hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console') Почему на разных мониторах окно программы выглядит по-разному. В частности шрифты.

Dima: azoo пишет: hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console') После нее добавь пару строчек и попробуй [pre2] HB_GtInfo(HB_GTI_FONTSIZE , Int(HB_GtInfo(HB_GTI_DESKTOPHEIGHT)/25)) HB_GtInfo(HB_GTI_FONTWIDTH, Int(HB_GtInfo(HB_GTI_DESKTOPWIDTH)/80)) hb_gtInfo(HB_GTI_FONTQUALITY,4) setmode(25,80) [/pre2]

azoo: Dima , я FONTSIZE и FONTWIDTH вообще не указывал. Добавил эти строки разницы не заметил (у меня размер окна 40*100). Но обнаружил, что на одинаковых разрешенииях шрифты отображаются одинаково на разных мониторах, даже если один 19", а другой 17". Когда на одном десктопе 1280*1024 - всё нормально, но при 1024*768 шрифт очень тонкий. Вот такой эффект. Хотя казалось бы должно быть наоборот.

Dima: azoo пишет: но при 1024*768 шрифт очень тонкий. CLEARTYPE в настройках винды включен ? Я про https://ru.wikipedia.org/wiki/ClearType

Dima: azoo пишет: Добавил эти строки разницы не заметил (у меня размер окна 40*100) это в строках и колонках ? коли так там и коэффициенты будут другие. HB_GtInfo(HB_GTI_FONTSIZE , Int(HB_GtInfo(HB_GTI_DESKTOPHEIGHT)/40)) HB_GtInfo(HB_GTI_FONTWIDTH, Int(HB_GtInfo(HB_GTI_DESKTOPWIDTH)/100)) Setmode(40,100)

azoo: Dima пишет: HB_GtInfo(HB_GTI_FONTSIZE , Int(HB_GtInfo(HB_GTI_DESKTOPHEIGHT)/40)) HB_GtInfo(HB_GTI_FONTWIDTH, Int(HB_GtInfo(HB_GTI_DESKTOPWIDTH)/100)) Setmode(40,100) Тут всё понятно, конечно 40 и 100 Dima пишет: CLEARTYPE в настройках винды включен ? Я про https://ru.wikipedia.org/wiki/ClearType Это решило проблему. Я раньше заметил, что шрифт утончается только на Windows XP, на Windows 7 всё нормально. Про ClearType не знал. Когда его включил, стало всё как надо, т.е. на любых разрешениях шрифты одинаковой толщины. Век живи, век учись. Спасибо.

Dima: azoo А у тебя окошко на весь экран ? Могу предложить вариант WVT_SETMODE

azoo: Dima пишет: А у тебя окошко на весь экран ? Могу предложить вариант WVT_SETMODE Да, я использую функцию WVT_SETMODE. Окно не на весь экран. Получается равномерный отступ от краёв рабочего стола. Единственный небольшой минус - это при использовании на широкоформатных мониторах шрифты слишком растянуты по горизонтали.

Dima: azoo пишет: Да, я использую функцию WVT_SETMODE Выложи ее , хочу взглянуть , возможно твоя более совершенна.

azoo: Функция WVT_SETMODE из форума: Смена "режима" под GTWVT Эти 2 темы можно объединить в одну.



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