Форум » [x]Harbour » Проблема с ярлыком и окном терминалки GTWVT » Ответить

Проблема с ярлыком и окном терминалки GTWVT

Лукашевский: Делаю ярлык на EXEшник. При запуске получаю 2 окна - окно моей программы и рядом ещё одно, пустое! И соотв. внизу в статусной строке рабочего стола тоже две кнопки... Смотрю свойства пустого окна - там всё как надо - можно изменить шрифт, размер окна и т.д. - в отличие от окна моей программы, только вот во вкладке "Программа" в параметре "Командная строка" - какой-то C:\WINME\SYSTEM\conagent.exe Что бы это значило? Закрываю это пустое окно - закрывается и окно моей программы. И наоборот... А ярлык я делал собственно для того, чтобы можно было программу на полный экран развернуть. Это вообще-то возможно?

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

PSP: Лукашевский пишет: А ярлык я делал собственно для того, чтобы можно было программу на полный экран развернуть. Это вообще-то возможно? В текстовом режиме возможно. Alt-Enter.

Лукашевский: PSP пишет: В текстовом режиме возможно. Alt-Enter. В том-то и дело, что ничего подобного!!! На Alt-Enter никакой реакции! Стал бы я иначе изгаляться с ярлыком, если бы было так просто!

PSP: Вааще-то должно работать.


PSP: Я вот этими шрифтами пользуюсь. Размеры большие. http://www.pspbelru.pochta.ru/files/newdos_f.fon http://www.pspbelru.pochta.ru/files/splushka.fon Это, конечно, не совсем в тему, но м.б. пригодицца. :)

Петр: http://www.google.com/search?client=opera&rls=ru&q=conagent.exe&sourceid=opera&ie=utf-8&oe=utf-8 Много интересного можно прочитать, если читать внимательно.

Лукашевский: Все такие умные... Времени нет весь интернет перелопачмвать! Если знаете, что делать - скажите, если нет - пустых фраз не надо (ну если только с соболезнованиями :-) Итак, что нужно сделать, чтобы: 1. Развернуть терминальную программу на весь экран 2. При запуске терминальной программы ярлыком было не два окна, а одно? Нет, ну можно подумать, что я один с этим столкнулся!!! Что, никто xHarbour-программу ярлыком с рабочего стола не запускает???

Лукашевский: PSP пишет: Вааще-то должно работать. Так в Clippere и работает! А харборская - далеко не всегда! При терминале GTWIN с ключом линковки -aa переключение по Alt Enter в полный экран работает, а во ВСЕХ остальных случаях - нет!!!

Петр: Петр пишет: http://www.google.com/search?client=opera&rls=ru&q=conagent.exe&sourceid=opera&ie=utf-8&oe=utf-8 Много интересного можно прочитать, если читать внимательно. Лукашевский пишет: Все такие умные... Времени нет весь интернет перелопачмвать! Решение на первой странице..

PSP: Лукашевский пишет: А харборская - не желает! У меня работает. Именно xHarbour и именно с ярлыком. Может какой-то триппер на компе завелся?

Лукашевский: PSP пишет: Может какой-то триппер на компе завелся? DrWEB ничего не говорит... Может, два окна потому, что у меня Windows ME? Но тогда это проблема не только моя должна быть...

Andrey: Лукашевский пишет: Может, два окна потому, что у меня Windows ME? Попробуй на ХР, если и там будет 2 окна, то это скорее всего из-за того что напутано с ключами сборки программы. У меня такое тоже раньше было.

Лукашевский: Петр пишет: Решение на первой странице.. Если ты о файле _default.pif, то у меня его нет, а если о том чтобы удалить conagent.exe - то без него ярлык вообще не запускается в принципе! Больше я там ничего полезного не нашёл...

Лукашевский: Andrey пишет: Попробуй на ХР, если и там будет 2 окна, Доберусь до компа с XP - попробую, конечно. У меня-то и на домашнем, и на ноутбуке Millennium... Кстати, а как ты справился с проблемой? Что именно там в ключах сборки было не так?

Петр: Лукашевский пишет: Если ты о файле _default.pif, то у меня его нет, а если о том чтобы удалить conagent.exe - то без него ярлык вообще не запускается в принципе! Больше я там ничего полезного не нашёл... Ну я не знаю, что тебе поможет и как ты читал.. Вот, что прочитал я: Use one of the following procedures to correct the problem. Используйте одну из следующих процедур для решения этой проблемы. А вот процедуры 1. Steps to Reset Configuration of _Default.pif Шаги по восстановлению настроек _Default.pif и т.д. 2. Steps to Reset Configuration of Conagent.exe. Шаги по восстановлению настроек Conagent.exe Make sure there is no _Default.pif file in your path; specifically check your Windows directory. Убедитесь что нет никакого _Default.pif в вашем пути, специально проверьте ваш каталог Windows. Follow the instructions for steps 2, 3, and 4 above given for resetting _Default.pif on the file Conagent.exe in your Windows or Windows System directory. Следуйте инструкциям для шагов 2, 3 и 4 и т.д. В общем, о удалении Conagent.exe речь не идет. Поскольку у тебя нет _Default.pif ( а он, как я понимаю, быть должен ) ты должен пройти процедуру №2. Вот щелкни на Conagent.exe правой клавишей мыши, вибери свойства, выбери закладку экран и установи опцию Окно, выбери применить. После всего этого у тебя должен появиться _Default.pif и все должно заработать.

Andrey: Лукашевский пишет: Кстати, а как ты справился с проблемой? Что именно там в ключах сборки было не так? Да не помню я точно, как исправлял. Делай просто, собери программу из нескольких строк, проверь у себя, а затем на ХР. А по результату можно будет разбирать ситуацию дальше.

Лукашевский: Петр пишет: Вот щелкни на Conagent.exe правой клавишей мыши, вибери свойства, выбери закладку экран и установи опцию Окно, выбери применить. После всего этого у тебя должен появиться _Default.pif Мне почему-то кажется, что не всему написанному в сети нужно верить... На закладке Экран у меня и так стояло значение "Оконный". И при этом _Default.pif не было. Я попробовал выставить "Полноэкранный" - пустое окно действительно разворачивается на полный экран, а окно программы как было, так и остаётся мелким! Так что ни одной из проблем манипуляции с Conagent.exe не решили!

Петр: А _Default.pif появился? Если появился - значит можно верить Есть еще одна подсказка : при компиляции программ MiniGUI прилинковывают библиотеку gtgui.lib ( стандарт для всех MiniGUI). Но, если требуется отладка такой программы используется ключ компилятора /b и в rsp файл включают еще и gtwin.lib, перед gtgui.lib. Связано это с тем, что отладчик в стандартном режиме использует именно gtwin терминал. Вот в результате при запуске этой MiniGUI программы мы можем видеть что-то подобное на то, что ты описываешь - основное GUI окно программы и пустое (до момента перехода в режим отладки) консольное. По моему на форуме xHb кто-то предлагал изменения необходимые для корректной работы отладчика в WVT терминале, но были ли эти изменения приняти и внесены в CVS - вопрос.

Лукашевский: Петр пишет: А _Default.pif появился? Если появился - значит можно верить Не появился. Значит - верить нельзя. И никакого ключа /b у меня и в помине нет! Так что это что-то другое. Знать бы что именно!

Лукашевский: А в сборке xHarbour 1.1.0 шрифт окна нерусский типа "греческий", хотя в главном модуле программы в первых строках указано WVT_SETCODEPAGE(255)

Pasha: Странно Я, правда, проверяю не на релизе, а на более поздней версии с CVS, но у меня кодовая страница русская (866) Пропробуй еще указать напрямую шрифт #include "gtinfo.ch" .. gtInfo(GTI_FONTNAME, 'Terminal') gtInfo(GTI_CODEPAGE, 255) // то же, что и WVT_SETCODEPAGE(255)

Лукашевский: Смогу проверить только в понедельник... На сборке 1.0.0, которая у меня на ноутбуке, со шрифтом и языком проблем нет - и твой вариант в ней работает точно так же, как и WVT_SETCODEPAGE(255). А что всё-таки с двумя окнами при запуске программы ярлыком? Или у тебя такой проблемы нет? И может ли всё-таки юзверь во время работы развернуть окно на полный экран, или в принципе нет?

Pasha: 2 окна у меня тоже формируются Развернуть окно нельзя, т.к. полноэкранного режима в принципе нет для gtwvt У себя я сделал такие настройки - через ini-файл: SetMode(nRow, nCol) // размер экрана в строках/столбцах gtInfo(GTI_FONTNAME, cFont) // шрифт gtInfo(GTI_FONTSIZE, nFontSize) // размер шрифта Этим вопрос с размером окна закрыл полностью, каждому юзеру ставлю настройки как ему удобно Недавно сделал настройку палитры цветов для gtwvt, через функции Wvt_GetPalette(), Wvt_SetPalette(), Wvt_ChooseColor()

Лукашевский: А зачем два окна в принципе-то? НАФИГА? И как второе (пустое) окно убрать, ибо принципиально убрать его можно: при запуске из Нортона, например, окно одно-единственное!

Andrey: Лукашевский пишет: при запуске из Нортона, например, окно одно-единственное Наверно т.к. Нортон это ДОС окно, то и второе не образуется. Я писал тебе, что при использовании gtwvt у меня только одно окно, при старте образуется 2 окна, а потом одно окно уходит (наверно какая-то инициализация), меня оно тоже раздражает ! У тебя что-то при сборке ЕХЕ-ника неправильно указано.

Andrey: Pasha пишет: Этим вопрос с размером окна закрыл полностью, каждому юзеру ставлю настройки как ему удобно А можно кусочек примера показать про эти настройки ? Плиз ....

Pasha: По поводу 2-го окна укажи линкеру опцию -aa

Pasha: Файл my.ini: [WVT] FontName=Terminal FontSize=20 Rows=30 Columns=90 его обработка при старте программы: if (aIni := HB_ReadIni('my.ini')) # nil if ('GTWVT' IN aIni) aPar := aIni['WVT'] if ('Rows' IN aPar) SetMode(Val(aPar['Rows']), Val(aPar['Columns'])) endif if ('FontName' IN aPar) gtInfo(GTI_FONTNAME, aPar['FontName']) endif if ('FontSize' IN aPar) gtInfo(GTI_FONTSIZE, Val(aPar['FontSize'])) endif endif endif

Лукашевский: Pasha пишет: По поводу 2-го окна укажи линкеру опцию -aa Ура! Лишнее окно убралось! Странно только, что при линковке с терминалом GTWin всё было нормально и без этой опции...

Лукашевский: Pasha пишет: gtInfo(GTI_FONTNAME, 'Terminal') gtInfo(GTI_CODEPAGE, 255) Проверил - gtInfo не помог - как был греческий шрифт вместо русского на сборке 1.1.0, так греческим и остался...

Vlad04: У меня остается проблема со вторым окном. Для сборки я использую батник Кресина.Опцию -аа по разному пробовал, второе окно не убирается. Посмотрите может , кто подскажет для данного случая. CLS @echo off set path=D:\lang\xharbour_1\bin;C:\BORLAND\BCC55\BIN if "%HB_BIN_INSTALL%"=="" set HB_BIN_INSTALL=D:\lang\xharbour_1\bin\ if "%HB_LIB_INSTALL%"=="" set HB_LIB_INSTALL=D:\lang\xharbour_1\lib\;C:\BORLAND\BCC55\lib\ if "%HB_INC_INSTALL%"=="" set HB_INC_INSTALL=D:\lang\xharbour_1\include\;c:\Borland\Bcc55\include\ %HB_BIN_INSTALL%\harbour main.prg -n -i%HB_INC_INSTALL% %2 %3 %HB_BIN_INSTALL%\harbour fg_menu.prg -n -i%HB_INC_INSTALL% %2 %3 pause bcc32 -O2 -d -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% @mylib.lnk REM del *.obj rem del *.c del *.tds

Andrey: Запусти утилиту HBMAKE.EXE выбери нужные тебе опции, укажи свои PRG файлы, и он тебе сам соберет твой проект. Более подробно посмотри по поиску на этом форуме. И не трать свое время на разборку всяких ключей, и не парься.

Vlad04: А если без HBMAKE.EXE? До этого я обходился без этой утилиты.

Pasha: Лукашевский пишет: Проверил - gtInfo не помог - как был греческий шрифт вместо русского на сборке 1.1.0, так греческим и остался... Я не могу сказать, что там в релизе начудили, да и смысла разбираться в этом наверное сейчас уже нет. Могу выслать собранную gtwvt.lib

Pasha: Vlad04 пишет: У меня остается проблема со вторым окном. Для сборки я использую батник Кресина.Опцию -аа по разному пробовал, второе окно не убирается. Посмотрите может , кто подскажет для данного случая. Наверное, надо добавить опцию -laa в вызове bcc32 Ключ -l у bcc: set linker option

Pasha: Лукашевский пишет: Странно только, что при линковке с терминалом GTWin всё было нормально и без этой опции... Для создания консольных и gui программ ilink32 использует разные опции: /aa Builds a 32-bit Windows application /ad Builds a 32-bit Windows device driver /ap Builds a 32-bit Windows console application Я, к примеру, смирился с этим вторым окном, так как собираю программы сразу с двумя терминалами - gtwvt и gtwin. Для меня важнее возможность более гибкой настройки. А одновременно консольной и windows программа быть не может Вот и создается лишнее консольное окно

Vlad04: Меня второе окно особенно то же не донимало, но если можно от него избавиться, то хотелось бы. При сборке с батником убрать окно не получилось. Вышлите на orsv04@mail.ru , кто победил второе окно используя утилиту HBMAKE.EXE , файлы , повидимому make_b32.bat и makefile.bc, конкретного примера.

Andrey: Vlad04 пишет: кто победил второе окно используя утилиту HBMAKE.EXE Так я ж и пишу, что эта утилита соберет тебе проект правильно. !!! И не надо отпихиваться словами, что нужно разбираться.... Там все тупо и просто. Я даже проект собираю из 2-х файлов, чем править готовые батники ....

Vlad04: К HBMAKE.EXE должен быть еще файл Makefile. Вот о нем речь и идет . Вышли его для программы хоть из двух файлов.

Pasha: Лукашевский пишет: Проверил - gtInfo не помог - как был греческий шрифт вместо русского на сборке 1.1.0, так греческим и остался... Я сегодня был в одной организации, и был сражен наповал... на обычных рабочих местах установлен Windows 2003 Server !!!!! Причем на каждом компьютере. Видимо, что-то решил, что чем круче, тем лучше Но к чему это я. Установил свои программы. Попросили до кучи настроить и консольный режим. Настроил с gtwvt - и увидел... кракозябликов. Причем на одном 2003srv шрифт не русский, на другом - русский Поигрался с настройками. Выяснилось, что кодовая страница OEM (255) получается нерусская (зяблики), если указать шрифт Terminal. С Courier New, Arial и пр - все в порядке Вывод из всего этого. В некоторых ОС у шрифта Terminal либо отсутствует кодовая страница 866, либо кодовая страница для OEM указывает не на 866-ю страницу (брр, какой сумбур-каламбур получился) Лечится все это использованием другого шрифта: gtInfo(GTI_FONTNAME, cFont)

Pasha: то есть gtInfo(GTI_FONTNAME, 'Courier New')

Лукашевский: Pasha пишет: Лечится все это использованием другого шрифта: Попробую, конечно... Однако: в сборке 1.0.0 у меня с русским всё было (и на ноуте и сейчас есть) нормально!!! Проблема появилась, начиная со сборки 1.1.0 (и осталась, gtwvt.lib от 05.01.08 не помог) - это во-первых, и только ДЛЯ ТЕРМИНАЛА GTWVT - с Gtwin всё в порядке, русский есть! GtWin что, другую кодовую страницу использует, не такую как GtWvt? Ну тогда это всё-таки наверное проблема терминала GtWvt, а? Пусть использует правильную кодовую страницу! И кстати, у меня совершенно обыкновенный Win'98 SE, а не 2003 Server... Что интересно, gtwvt.lib от 05.01.08 вроде как помог от неправильной предобработки GETа...

Лукашевский: Pasha пишет: то есть gtInfo(GTI_FONTNAME, 'Courier New') Да, действительно, всё стало по-русски... но убого сплюснутым А если поставить Arial или Times, то буквы друг с другом сливаются... Terminal выглядел получше. Щас буду дальше экспериментировать.

Лукашевский: Terminal выглядел получше. О, нашёл: gtInfo(GTI_FONTNAME, "Lucida Console") очень неплохо смотрится!

Pasha: До 2007-го года шрифт по умолчанию для gtwvt был Courier New. В прошлом году (точно не скажу когда и кем) его заменили на Terminal. Получается, что в некоторых ОС шрифт Terminal при указании OEM Codepage не устанавливает русскую кодировку. В релизе 1.0.0 это было некритично, так использовался по умолчанию другой шрифт, а в релизе 1.1.0 этот глюк некоторых ОС проявляется. Поскольку терминал дает возможность прямо устанавливать шрифт, возвращать его на Courier New нет смысла. Изначально это проблема не gtwvt, а ОС

Лукашевский: Pasha пишет: gtInfo(GTI_FONTSIZE, nFontSize) // размер шрифта Такое увеличение "размера" шрифта даёт только увеличение вертикальной длины символов. А как сделать, чтобы они и в ширину увеличивались? Короче, чтобы огрызков рабочего стола слева и справа от окна не было (глаз на них сильно отвлекается)? gtInfo(GTI_SCREENWIDTH, 800) помог лишь частично - окно стало в ширину экрана, но ширина шрифта в приложении осталась прежнего размера... соответственно имеем справа пустой кусок окна... gtInfo(GTI_FONTWEIGHT, ...) не даёт вообще никакого видимого эффекта... по крайней мере со шрифтом Lucida Console Больше я в gtInfo.ch ничего толкового на эту тему не нашёл.

Pasha: А GTI_FONTWIDTH ? Это кажется то, что надо

Лукашевский: Pasha пишет: А GTI_FONTWIDTH ? Это кажется то, что надо Спасибо, Pasha! Действительно, проглядел... немало там всего. Сочетание: gtInfo(GTI_FONTNAME, "Lucida Console") gtInfo(GTI_FONTSIZE, 16) gtInfo(GTI_FONTWIDTH, 10) дало вполне приемлемый вид программы.

Andrey: А как можно получить список установленных шрифтов с размерами для терминала GTWVT ? Хотелось бы сделать менюшку с выбором шрифта и размерами. А то юзера разборчивые все пальцы загибают: а вот раньше (на Клипере) можно было размер "программы" установить (это они про шрифт так говорят) а сейчас нельзя, а мне не нравиться, а вообще программа стала хуже.... Достали ..........

Pasha: Можно использовать любой шрифт, в котором есть русская кодовая страница А список можно глянуть хотя бы в ворде Насчет размеров - сделай им простое дилоговое окошко с настройками этих размеров Будет еще лучше, чем рашьше :)

Лукашевский: Лукашевский пишет: По поводу 2-го окна укажи линкеру опцию -aa Ура! Лишнее окно убралось! М-да... Убралось оно при опции -aa только в Windows'98 и в Windows ME. В Windows XP по-прежнему присутствует...

Andrey: Pasha пишет: Можно использовать любой шрифт, в котором есть русская кодовая страница А список можно глянуть хотя бы в ворде Т.е. системно нельзя ? Я откуда знаю куда мою задачу поставят на 98/...... или ХР ! Или нужно под каждую операционку держать отдельные списки шрифтов ?

Лукашевский: Ещё одна ошибка терминала GTWVT: не воспринимается нажатие комбинации ALT F6 INKEY(0) её просто не ощущает - продолжает ждать нажатия клавиши!

Pasha: Тест показал: В win98 программа с gtwvt не получает событие при нажатии Alt+F6 В winxp - получает, и нормально обрабатывает Но, к примеру, в winxp у меня программа с gtwvt не получает событие при нажатии Alt+F5, поскольку эту комбинацию клавиш перехватывает видеодрайвер, даже если моя программа находится в фокусе Какое приложение перехватывает комбинацию клавиш Alt+F6 в win98 - не знаю. Возможно, это делает сама ОС, если такое нажатие зарезервировано для каких-то системных целей Хорошо бы протестировать нажатие Alt+F6 в любой win32-программе под win98 В сырцах gtwvt видно, что нажатие Alt+F6 обрабатывается обычным образом. Это подтверждается и тем, что в winxp это нажатие отрабатывается, если программа получает само событие

Лукашевский: Pasha пишет: Какое приложение перехватывает комбинацию клавиш Alt+F6 в win98 - не знаю. Возможно, это делает сама ОС, если такое нажатие зарезервировано для каких-то системных целей Pasha, ты не обратил внимание на слова "ошибка терминала GTWVT" в моём сообщении :-) Я специально попробовал на GTWIN - там Alt+F6 под тем же Win'98 прекрасно обрабатывается! Только после этого я написал то, что написал Так что ошибка скорее всего именно где-то в терминале GTWVT - комбинацию Alt+F6 зачем-то перехватывает именно он... Как, я думаю, и Alt+F5 под Win'XP... В сырцах gtwvt видно, что нажатие Alt+F6 обрабатывается обычным образом. Ну или, по крайней мере, GTWVT почему-то позволяет виндосе эту комбинацию перехватывать, в отличие от GTWIN, который это дело совершенно правильно рубит...

Pasha: Лукашевский пишет: Pasha, ты не обратил внимание на слова "ошибка терминала GTWVT" в моём сообщении :-) Я специально попробовал на GTWIN - там Alt+F6 под тем же Win'98 прекрасно обрабатывается! Это ни о чем не говорит, так как события клавитуры в консольной и gui программе windows обрабатывает совершенно по разному. И набор winapi-функций разный Как, я думаю, и Alt+F5 под Win'XP... Нет, здесь как раз все ясно. Это нажатие перехватывает видеодрайвер

Pasha: Это таки проблема ОС см. minigui\samples\basic\on_key\demo.prg добавляем строки: ON KEY ALT+F5 ACTION MsgInfo ('ALT+F5') ON KEY ALT+F6 ACTION MsgInfo ('ALT+F6') ON KEY ALT+F7 ACTION MsgInfo ('ALT+F7') Как можно догадаться, магическое Alt+F6 не срабатывает под win98, со всеми остальными клавишами все ok Никакого gtwvt там нет

saulius: Keyboard shortcuts for Windows http://support.microsoft.com/kb/126449 ... General keyboard-only commands ... ALT+F6: Switch between multiple windows in the same program (for example, when the Notepad Find dialog box is displayed, ALT+F6 switches between the Find dialog box and the main Notepad window) ... APPLIES TO • Microsoft Windows Millennium Edition • Microsoft Windows 98 Second Edition • Microsoft Windows 98 Standard Edition • Microsoft Windows 95

Лукашевский: Pasha пишет: Развернуть окно нельзя, т.к. полноэкранного режима в принципе нет для gtwvt А для терминала GTWIN полноэкранный режим есть! И какой терминал прикажете считать более продвинутым?

Лукашевский: Vlad04 пишет: При сборке с батником убрать окно не получилось. Так получилось у кого-нибудь убрать второе окно при работе под XP? А то у меня в 98-ME его нет, а в XP тот же самый EXEшник запускается двумя окнами!

Pasha: Лукашевский пишет: Так получилось у кого-нибудь убрать второе окно при работе под XP? А то у меня в 98-ME его нет, а в XP тот же самый EXEшник запускается двумя окнами! линкеру дай параметр -aa

Лукашевский: Pasha пишет: линкеру дай параметр -aa А я о чём говорю?! Именно с этим параметром в 98-м и ME окно одно, а в XP - два!

Andrey: Собери свой проект под HBMAKE и он сам тебе правильно поставит опции сборки.... И не парся ....

Andrey: Pasha пишет: Насчет размеров - сделай им простое дилоговое окошко с настройками этих размеров Будет еще лучше, чем рашьше :) Как это сделать ???

Лукашевский: Pasha пишет: А GTI_FONTWIDTH ? Это кажется то, что надо Перестал работать GtInfo(GTI_FONTWIDTH, 10)... Интересно, это из-за мультитерминальной сборки, или кто-то внёс ошибку в сырцы? При этом GtInfo(GTI_FONTWIDTH) работает как прежде, показывает ширину шрифта правильно. А вот установка этой самой ширины не работает

Andrey: Pasha пишет: Недавно сделал настройку палитры цветов для gtwvt, через функции Wvt_GetPalette(), Wvt_SetPalette(), Wvt_ChooseColor() А можно еще до кучи и этот кусочек примера показать про эти настройки ? спасибо заранее .... Pasha пишет: Этим вопрос с размером окна закрыл полностью, каждому юзеру ставлю настройки как ему удобно Т.е. ты сам в ини-файлы ставишь ручками шрифт и размер шрифта ?

Pasha: Andrey „Ѓ„y„Љ„u„„: „@ „}„Ђ„w„~„Ђ „u„‹„u „t„Ђ „{„…„‰„y „y „Џ„„„Ђ„„ „{„…„ѓ„Ђ„‰„u„{ „Ѓ„‚„y„}„u„‚„p „Ѓ„Ђ„{„p„x„p„„„Ћ „Ѓ„‚„Ђ „Џ„„„y „~„p„ѓ„„„‚„Ђ„z„{„y ? „R„}. „Ѓ„‚„Ђ„?„u„t„…„‚„… „~„y„w„u. „S„p„}, „{„Ђ„~„u„‰„~„Ђ, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „}„Ђ„‘ „ѓ„Ѓ„u„?„y„†„y„{„p. „N„Ђ „ѓ„…„„„Ћ, „‘ „t„…„}„p„ђ, „q„…„t„u„„ „Ѓ„Ђ„~„‘„„„~„p „M„p„ѓ„ѓ„y„r aGet - „Џ„„„Ђ „ѓ„Ѓ„y„ѓ„Ђ„{ GET. „{„Ђ„„„Ђ„‚„Ќ„u „~„p„t„Ђ „ѓ„Ђ„x„t„p„„„Ћ. „B „Џ„„„y„‡ get „‘ „x„p„t„p„ђ Reader-„q„|„Ђ„{, „r „{„Ђ„„„Ђ„‚„Ђ„} „Ѓ„Ђ Enter „r„Ќ„x„Ќ„r„p„u„„„ѓ„‘ „q„|„Ђ„{ „{„Ђ„t„p „r„y„t„p {|| SetClr(1, a16)}. „K„p„w„t„Ђ„}„… get „~„p„t„Ђ „…„ѓ„„„p„~„Ђ„r„y„„„Ћ „ѓ„Ђ„Ђ„„„r„u„„„ѓ„„„r„…„ђ„‹„y„z „?„r„u„„ TWindowNew/TWindowClose - „Ѓ„‚„Ђ„ѓ„„„Ђ „ѓ„Ђ„x„t„p„~„y„u „Ѓ„…„ѓ„„„Ђ„„„s„Ђ „Ђ„{„~„p „ѓ „‚„p„}„{„Ђ„z ARead „†„Ђ„‚„}„y„‚„…„u„„ get „y „r„Ќ„x„Ќ„r„p„u„„ ReadModal „H„p„}„u„~„y „}„Ђ„ђ „ѓ„Ѓ„u„?„y„†„y„{„… „~„p „ѓ„„„p„~„t„p„‚„„„~„Ќ„u „†„…„~„{„?„y„y. „` „~„p„Ѓ„‚„‘„}„…„ђ „{„Ђ„}„p„~„t„Ќ „„„y„Ѓ„p SAY/GET „r„Ќ„x„Ќ„r„p„ђ „‚„u„t„{„Ђ #ifdef __HARBOUR__ #include "getexit.ch" #include "inkey.ch" Static func ColorSetup Local a16 := WVT_GetPalette(), w Local a16Old := AClone(a16) Local bGet := {|| space(6)} Local cBtnClr := '15/01,00/03, ,11/03,07/01' Local aGet := {; { 4,20, '„X„u„‚„~„Ќ„z ', bGet,,,,, {|| SetClr(1, a16)},, '07/00'},; { 6,20, '„R„y„~„y„z ', bGet,,,,, {|| SetClr(2, a16)},, '01/01'},; { 8,20, '„H„u„|„u„~„Ќ„z ', bGet,,,,, {|| SetClr(3, a16)},, '02/02'},; {10,20, '„A„y„‚„ђ„x„Ђ„r„Ќ„z ', bGet,,,,, {|| SetClr(4, a16)},, '03/03'},; {12,20, '„K„‚„p„ѓ„~„Ќ„z ', bGet,,,,, {|| SetClr(5, a16)},, '04/04'},; {14,20, '„L„y„|„Ђ„r„Ќ„z ', bGet,,,,, {|| SetClr(6, a16)},, '05/05'},; {16,20, '„K„Ђ„‚„y„‰„~„u„r„Ќ„z ', bGet,,,,, {|| SetClr(7, a16)},, '06/06'},; {18,20, '„A„u„|„Ќ„z ', bGet,,,,, {|| SetClr(8, a16)},, '07/07'},; { 4,42, '„R„u„‚„Ќ„z ', bGet,,,,, {|| SetClr(9, a16)},, '08/08'},; { 6,42, '„`„‚„{„Ђ-„ѓ„y„~„y„z ', bGet,,,,, {|| SetClr(10, a16)},, '09/09'},; { 8,42, '„`„‚„{„Ђ-„x„u„|„u„~„Ќ„z', bGet,,,,, {|| SetClr(11, a16)},, '10/10'},; {10,42, '„C„Ђ„|„…„q„Ђ„z ', bGet,,,,, {|| SetClr(12, a16)},, '11/11'},; {12,42, '„`„‚„{„Ђ-„{„‚„p„ѓ„~„Ќ„z', bGet,,,,, {|| SetClr(13, a16)},, '12/12'},; {14,42, '„R„y„‚„u„~„u„r„Ќ„z ', bGet,,,,, {|| SetClr(14, a16)},, '13/13'},; {16,42, '„G„u„|„„„Ќ„z ', bGet,,,,, {|| SetClr(15, a16)},, '14/14'},; {18,42, '„`„‚„{„Ђ-„q„u„|„Ќ„z ', bGet,,,,, {|| SetClr(16, a16)},, '15/15'},; {19,20, Replicate('„џ', 41)},; {20,20,, {|| '[ „C„Ђ„„„Ђ„r„Ђ ]'},,,,; {|oG| if(oG:ExitState=GE_ENTER,(oG:ExitState:=GE_WRITE,.f.),.t.)},; {|oG| SetLastKey(K_ENTER),oG:ExitState:=6},, cBtnClr},; {20,20+13,, {|| '[ „O„„„}„u„~„p ]'},,,,,; {|oG| SetLastKey(K_ESC),oG:ExitState:=7},, cBtnClr},; {20,36+10,, {|| '[ „R„„„p„~„t„p„‚„„„~„Ќ„u ]'},,,,,; {|oG| StandardClr(a16)},, cBtnClr} } Local aIni := HB_ReadIni('gals.ini') Local aWvt, cWvt, ser, lChange := .f. if aIni # nil .and. ('GTWVT' IN aIni) aWvt := aIni['GTWVT'] w := TWindowNew(2,15,22,65,,, 2, .t.) @ 2, 33 say '„N„p„ѓ„„„‚„Ђ„z„{„p „Ѓ„p„|„y„„„‚„Ќ' // ARead(aGet) TWindowClose(w) for ser := 1 to 16 if a16[ser] # a16Old[ser] lChange := .t. exit endif next if lChange cWvt := '' for ser := 1 to 16 cWvt += if(! Empty(cWvt), ',', '') + StrTrim(a16[ser]) next aWvt['Palette'] := cWvt HB_WriteIni('gals.ini', aIni) elseif LastKey() == K_ESC WvtRefresh(a16Old) endif endif Return nil Static func SetClr(nPal, a16) Local nClr := WVT_ChooseColor(a16[nPal], a16) if nClr # -1 .and. nClr # a16[nPal] a16[nPal] := nClr WvtRefresh(a16) endif Return nil Static func StandardClr(a16) a16[ 1] := RGB( 0x0 ,0x0 ,0x0 ) a16[ 2] := RGB( 0x0 ,0x0 ,0x85 ) a16[ 3] := RGB( 0x0 ,0x85,0x0 ) a16[ 4] := RGB( 0x0 ,0x85,0x85 ) a16[ 5] := RGB( 0x85,0x0 ,0x0 ) a16[ 6] := RGB( 0x85,0x0 ,0x85 ) a16[ 7] := RGB( 0x85,0x85,0x0 ) a16[ 8] := RGB( 0xC6,0xC6,0xC6 ) a16[ 9] := RGB( 0x60,0x60,0x60 ) a16[10] := RGB( 0x00,0x00,0xFF ) a16[11] := RGB( 0x60,0xFF,0x60 ) a16[12] := RGB( 0x60,0xFF,0xFF ) a16[13] := RGB( 0xF8,0x00,0x26 ) a16[14] := RGB( 0xFF,0x60,0xFF ) a16[15] := RGB( 0xFF,0xFF,0x00 ) a16[16] := RGB( 0xFF,0xFF,0xFF ) WvtRefresh(a16) Return nil STATIC FUNCTION rgb( r,g,b ) RETURN ( r + ( g * 256 ) + ( b * 256 * 256 ) ) #endif

Pasha: „D„p „‰„„„Ђ „„„p„{„Ђ„u. „K„‚„p„{„Ђ„x„‘„q„|„y„{„p„}„y „r„ѓ„u „Ѓ„Ђ„Љ„|„Ђ. „P„Ђ„r„„„Ђ„‚„‘„ђ „{„Ђ„t #ifdef __HARBOUR__ #ifndef _fw #include "getexit.ch" #include "inkey.ch" Static func ColorSetup Local a16 := WVT_GetPalette(), w Local a16Old := AClone(a16) Local bGet := {|| space(6)} Local cBtnClr := '15/01,00/03, ,11/03,07/01' Local aGet := {; { 4,20, '„X„u„‚„~„Ќ„z ', bGet,,,,, {|| SetClr(1, a16)},, '07/00'},; { 6,20, '„R„y„~„y„z ', bGet,,,,, {|| SetClr(2, a16)},, '01/01'},; { 8,20, '„H„u„|„u„~„Ќ„z ', bGet,,,,, {|| SetClr(3, a16)},, '02/02'},; {10,20, '„A„y„‚„ђ„x„Ђ„r„Ќ„z ', bGet,,,,, {|| SetClr(4, a16)},, '03/03'},; {12,20, '„K„‚„p„ѓ„~„Ќ„z ', bGet,,,,, {|| SetClr(5, a16)},, '04/04'},; {14,20, '„L„y„|„Ђ„r„Ќ„z ', bGet,,,,, {|| SetClr(6, a16)},, '05/05'},; {16,20, '„K„Ђ„‚„y„‰„~„u„r„Ќ„z ', bGet,,,,, {|| SetClr(7, a16)},, '06/06'},; {18,20, '„A„u„|„Ќ„z ', bGet,,,,, {|| SetClr(8, a16)},, '07/07'},; { 4,42, '„R„u„‚„Ќ„z ', bGet,,,,, {|| SetClr(9, a16)},, '08/08'},; { 6,42, '„`„‚„{„Ђ-„ѓ„y„~„y„z ', bGet,,,,, {|| SetClr(10, a16)},, '09/09'},; { 8,42, '„`„‚„{„Ђ-„x„u„|„u„~„Ќ„z', bGet,,,,, {|| SetClr(11, a16)},, '10/10'},; {10,42, '„C„Ђ„|„…„q„Ђ„z ', bGet,,,,, {|| SetClr(12, a16)},, '11/11'},; {12,42, '„`„‚„{„Ђ-„{„‚„p„ѓ„~„Ќ„z', bGet,,,,, {|| SetClr(13, a16)},, '12/12'},; {14,42, '„R„y„‚„u„~„u„r„Ќ„z ', bGet,,,,, {|| SetClr(14, a16)},, '13/13'},; {16,42, '„G„u„|„„„Ќ„z ', bGet,,,,, {|| SetClr(15, a16)},, '14/14'},; {18,42, '„`„‚„{„Ђ-„q„u„|„Ќ„z ', bGet,,,,, {|| SetClr(16, a16)},, '15/15'},; {19,20, Replicate('„џ', 41)},; {20,20,, {|| '[ „C„Ђ„„„Ђ„r„Ђ ]'},,,,; {|oG| if(oG:ExitState=GE_ENTER,(oG:ExitState:=GE_WRITE,.f.),.t.)},; {|oG| SetLastKey(K_ENTER),oG:ExitState:=6},, cBtnClr},; {20,20+13,, {|| '[ „O„„„}„u„~„p ]'},,,,,; {|oG| SetLastKey(K_ESC),oG:ExitState:=7},, cBtnClr},; {20,36+10,, {|| '[ „R„„„p„~„t„p„‚„„„~„Ќ„u ]'},,,,,; {|oG| StandardClr(a16)},, cBtnClr} } Local aIni := HB_ReadIni('gals.ini') Local aWvt, cWvt, ser, lChange := .f. if aIni # nil .and. ('GTWVT' IN aIni) aWvt := aIni['GTWVT'] w := TWindowNew(2,15,22,65,,, 2, .t.) @ 2, 33 say '„N„p„ѓ„„„‚„Ђ„z„{„p „Ѓ„p„|„y„„„‚„Ќ' // ARead(aGet) TWindowClose(w) for ser := 1 to 16 if a16[ser] # a16Old[ser] lChange := .t. exit endif next if lChange cWvt := '' for ser := 1 to 16 cWvt += if(! Empty(cWvt), ',', '') + StrTrim(a16[ser]) next aWvt['Palette'] := cWvt HB_WriteIni('gals.ini', aIni) elseif LastKey() == K_ESC WvtRefresh(a16Old) endif endif Return nil Static func SetClr(nPal, a16) Local nClr := WVT_ChooseColor(a16[nPal], a16) if nClr # -1 .and. nClr # a16[nPal] a16[nPal] := nClr WvtRefresh(a16) endif Return nil Static func StandardClr(a16) a16[ 1] := RGB( 0x0 ,0x0 ,0x0 ) a16[ 2] := RGB( 0x0 ,0x0 ,0x85 ) a16[ 3] := RGB( 0x0 ,0x85,0x0 ) a16[ 4] := RGB( 0x0 ,0x85,0x85 ) a16[ 5] := RGB( 0x85,0x0 ,0x0 ) a16[ 6] := RGB( 0x85,0x0 ,0x85 ) a16[ 7] := RGB( 0x85,0x85,0x0 ) a16[ 8] := RGB( 0xC6,0xC6,0xC6 ) a16[ 9] := RGB( 0x60,0x60,0x60 ) a16[10] := RGB( 0x00,0x00,0xFF ) a16[11] := RGB( 0x60,0xFF,0x60 ) a16[12] := RGB( 0x60,0xFF,0xFF ) a16[13] := RGB( 0xF8,0x00,0x26 ) a16[14] := RGB( 0xFF,0x60,0xFF ) a16[15] := RGB( 0xFF,0xFF,0x00 ) a16[16] := RGB( 0xFF,0xFF,0xFF ) WvtRefresh(a16) Return nil STATIC FUNCTION rgb( r,g,b ) RETURN ( r + ( g * 256 ) + ( b * 256 * 256 ) ) #endif

Pasha: Krakozyabliki po4emu-to poshli :0

Pasha: Лукашевский пишет: Перестал работать GtInfo(GTI_FONTWIDTH, 10)... Интересно, это из-за мультитерминальной сборки, или кто-то внёс ошибку в сырцы? Posmotriu Посмотрю

Pasha: Похоже, сейчас при multi_gt сборке терминал gtwvt вообще не линкуется к программе. Доступен только gtwin Я написал об этом в dev-list

Pasha: Я получил разьяснение от Marcos Antonio Gambeta: To run my programs i am using: ANNOUNCE hb_gt_wvt_default Procedure Main () .... Return Procedure hb_gtsys () request hb_gt_wvt Return To run in console mode: myprogram.exe //gtwin Мне кажется, что достаточно указать: request hb_gt_wvt Кстати, по таким небольшим вопросам лучше сами обращайтесь в группу новостей xHarbour Заходите на www.deja.com Находите группу новостей: comp.lang.xharbour или ссылка http://groups.google.com/group/comp.lang.xharbour/topics?lnk=gschg Задаете вопрос. Получаете компетентный ответ, причем оперативно, без лишнего передаточного звена в моем лице Если есть затруднения с английским - попросите знакомого перевести свой небольшой и несложный текст, или воспользуйтесь переводчиком

Лукашевский: Pasha пишет: Похоже, сейчас при multi_gt сборке терминал gtwvt вообще не линкуется к программе. Доступен только gtwin С сырцами от 20 февраля линкуется... Я же писал, что GtInfo(GTI_FONTWIDTH) выдаёт текущую ширину шрифта правильно... Кстати, Pasha, не в курсе, в какой кодировке должен быть русский текст для GtInfo(GTI_WINTITLE, text), чтобы он правильно отображался под GTWIN на XP ? С 98-м и ME проблем нет, а под XP чёрт знает что в заголовке окна рисует...

Pasha: Я тоже об это споткнулся winxp и win9x ведут себя по разному, чтот для меня было неожиданно Поэтому можно написать так: GTInfo( GTI_WINTITLE, if(hb_gt_version()='WVT'.or.OS_ISWIN9X(), HB_OemToAnsi( cCap ), cCap) ) Так GTI_FONTWIDTH заработал ? У меня работает с последними сырцами, если поставить request

Andrey: Pasha пишет: Krakozyabliki po4emu-to poshli :0 Паша спасибо за тексты, только в кракозябах я тоже ничерта не разберусь. Если тебе не трудно, то скинь пожалуйста тексты на мое мыло: 30195@mail.ru

Лукашевский: Pasha пишет: Так GTI_FONTWIDTH заработал? Как не работал, так и не работает... Сырцы обновлял сегодня ночью... request hb_gt_wvt уменя был поставлен сразу как я сделал мультитерминальную сборку (соотв. harbour_faq.txt) Но раз у тебя работает... возможно, GTI_FONTWIDTH перестала устанавливаться только под Win'9x, а под XP работает. Постараюсь прояснить этот вопрос.

Pasha: „B„Ђ„„ „u„‹„u „‚„p„x „Џ„„„p „Ѓ„‚„Ђ„?„u„t„…„‚„p. „S„p„} „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„ђ„„„ѓ„‘ „}„Ђ„y „†„~„{„?„y„y, „{„Ђ„„„Ђ„‚„Ќ„u „~„p„t„Ђ „x„p„}„u„~„y„„„Ћ „ѓ„r„Ђ„y„}„y TWindowNew()/TWindowsClose() - „Ѓ„‚„Ђ„ѓ„„„Ђ „Ђ„„„{„‚„Ќ„„„y„u „Ђ„{„~„p „ѓ „…„{„p„x„p„~„~„Ќ„}„y „{„Ђ„Ђ„‚„t„y„~„p„„„p„}„y „M„p„ѓ„ѓ„y„r aGet „Ѓ„‚„u„t„~„p„x„~„p„‰„u„~ „t„|„‘ „ѓ„Ђ„x„t„p„~„y„‘ say/get „Ђ„q„Ћ„u„{„„„Ђ„r „r „…„{„p„x„p„~„~„Ђ„} „}„u„ѓ„„„u „Џ„{„‚„p„~„p, „ѓ „x„p„t„p„~„~„Ќ„} „?„r„u„„„Ђ„}. „A„Ђ„| „{„Ђ„t„p {|| SetClr(1, a16)} „r„Ќ„x„Ќ„r„p„u„„„ѓ„‘ „Ѓ„Ђ „~„p„w„p„„„y„ђ Enter „~„p „Џ„„„y„‡ „Ђ„q„Ћ„u„{„„„p„‡ get. „S.„u. „~„p„t„Ђ „t„|„‘ „{„p„w„t„Ђ„s„Ђ „Ђ„q„Ћ„u„{„„„p get „ѓ„Ђ„x„t„p„„„Ћ reader-„q„|„Ђ„{, „{„Ђ„„„Ђ„‚„Ќ„z „q„Ќ „Ѓ„Ђ „~„p„w„p„„„y„ђ Enter „r„Ќ„x„Ќ„r„p„| „Џ„„„Ђ„„ „Ђ„q„‚„p„q„Ђ„„„‰„y„{ „U„…„~„{„?„y„‘ ARead „ѓ„Ђ„x„t„p„u„„ „Џ„„„y get „y „r„Ќ„x„Ќ„r„p„u„„ ReadModal „R„p„}„y „†„…„~„{„?„y„y „~„u „t„p„ђ, „„„p„{ „Ђ„~„y „Ѓ„Ђ„„„‘„~„…„„ „x„p „ѓ„Ђ„q„Ђ„z „u„‹„u „}„~„Ђ„s„Ђ „‰„u„s„Ђ... „D„…„}„p„ђ, „ѓ„…„„„Ћ „Ѓ„Ђ„~„‘„„„~„p „y „q„u„x „~„y„‡ #include "getexit.ch" #include "inkey.ch" Static func ColorSetup Local a16 := WVT_GetPalette(), w Local a16Old := AClone(a16) Local bGet := {|| space(6)} Local cBtnClr := '15/01,00/03, ,11/03,07/01' Local aGet := {; { 4,20, '„X„u„‚„~„Ќ„z ', bGet,,,,, {|| SetClr(1, a16)},, '07/00'},; { 6,20, '„R„y„~„y„z ', bGet,,,,, {|| SetClr(2, a16)},, '01/01'},; { 8,20, '„H„u„|„u„~„Ќ„z ', bGet,,,,, {|| SetClr(3, a16)},, '02/02'},; {10,20, '„A„y„‚„ђ„x„Ђ„r„Ќ„z ', bGet,,,,, {|| SetClr(4, a16)},, '03/03'},; {12,20, '„K„‚„p„ѓ„~„Ќ„z ', bGet,,,,, {|| SetClr(5, a16)},, '04/04'},; {14,20, '„L„y„|„Ђ„r„Ќ„z ', bGet,,,,, {|| SetClr(6, a16)},, '05/05'},; {16,20, '„K„Ђ„‚„y„‰„~„u„r„Ќ„z ', bGet,,,,, {|| SetClr(7, a16)},, '06/06'},; {18,20, '„A„u„|„Ќ„z ', bGet,,,,, {|| SetClr(8, a16)},, '07/07'},; { 4,42, '„R„u„‚„Ќ„z ', bGet,,,,, {|| SetClr(9, a16)},, '08/08'},; { 6,42, '„`„‚„{„Ђ-„ѓ„y„~„y„z ', bGet,,,,, {|| SetClr(10, a16)},, '09/09'},; { 8,42, '„`„‚„{„Ђ-„x„u„|„u„~„Ќ„z', bGet,,,,, {|| SetClr(11, a16)},, '10/10'},; {10,42, '„C„Ђ„|„…„q„Ђ„z ', bGet,,,,, {|| SetClr(12, a16)},, '11/11'},; {12,42, '„`„‚„{„Ђ-„{„‚„p„ѓ„~„Ќ„z', bGet,,,,, {|| SetClr(13, a16)},, '12/12'},; {14,42, '„R„y„‚„u„~„u„r„Ќ„z ', bGet,,,,, {|| SetClr(14, a16)},, '13/13'},; {16,42, '„G„u„|„„„Ќ„z ', bGet,,,,, {|| SetClr(15, a16)},, '14/14'},; {18,42, '„`„‚„{„Ђ-„q„u„|„Ќ„z ', bGet,,,,, {|| SetClr(16, a16)},, '15/15'},; {19,20, Replicate('„џ', 41)},; {20,20,, {|| '[ „C„Ђ„„„Ђ„r„Ђ ]'},,,,; {|oG| if(oG:ExitState=GE_ENTER,(oG:ExitState:=GE_WRITE,.f.),.t.)},; {|oG| SetLastKey(K_ENTER),oG:ExitState:=6},, cBtnClr},; {20,20+13,, {|| '[ „O„„„}„u„~„p ]'},,,,,; {|oG| SetLastKey(K_ESC),oG:ExitState:=7},, cBtnClr},; {20,36+10,, {|| '[ „R„„„p„~„t„p„‚„„„~„Ќ„u ]'},,,,,; {|oG| StandardClr(a16)},, cBtnClr} } Local aIni := HB_ReadIni('gals.ini') Local aWvt, cWvt, ser, lChange := .f. if aIni # nil .and. ('GTWVT' IN aIni) aWvt := aIni['GTWVT'] w := TWindowNew(2,15,22,65,,, 2, .t.) @ 2, 33 say '„N„p„ѓ„„„‚„Ђ„z„{„p „Ѓ„p„|„y„„„‚„Ќ' // ARead(aGet) TWindowClose(w) for ser := 1 to 16 if a16[ser] # a16Old[ser] lChange := .t. exit endif next if lChange cWvt := '' for ser := 1 to 16 cWvt += if(! Empty(cWvt), ',', '') + StrTrim(a16[ser]) next aWvt['Palette'] := cWvt HB_WriteIni('gals.ini', aIni) elseif LastKey() == K_ESC WvtRefresh(a16Old) endif endif Return nil Static func SetClr(nPal, a16) Local nClr := WVT_ChooseColor(a16[nPal], a16) if nClr # -1 .and. nClr # a16[nPal] a16[nPal] := nClr WvtRefresh(a16) endif Return nil Static func StandardClr(a16) a16[ 1] := RGB( 0x0 ,0x0 ,0x0 ) a16[ 2] := RGB( 0x0 ,0x0 ,0x85 ) a16[ 3] := RGB( 0x0 ,0x85,0x0 ) a16[ 4] := RGB( 0x0 ,0x85,0x85 ) a16[ 5] := RGB( 0x85,0x0 ,0x0 ) a16[ 6] := RGB( 0x85,0x0 ,0x85 ) a16[ 7] := RGB( 0x85,0x85,0x0 ) a16[ 8] := RGB( 0xC6,0xC6,0xC6 ) a16[ 9] := RGB( 0x60,0x60,0x60 ) a16[10] := RGB( 0x00,0x00,0xFF ) a16[11] := RGB( 0x60,0xFF,0x60 ) a16[12] := RGB( 0x60,0xFF,0xFF ) a16[13] := RGB( 0xF8,0x00,0x26 ) a16[14] := RGB( 0xFF,0x60,0xFF ) a16[15] := RGB( 0xFF,0xFF,0x00 ) a16[16] := RGB( 0xFF,0xFF,0xFF ) WvtRefresh(a16) Return nil STATIC FUNCTION rgb( r,g,b ) RETURN ( r + ( g * 256 ) + ( b * 256 * 256 ) )

Pasha: что-то в коде процедуры заставляет форум переходить на кракозяблики напишу мылом

Лукашевский: Pasha пишет: Так GTI_FONTWIDTH заработал ? GTI_FONTWIDTH отказывается устанавливаться категорически, и на XP в том числе, - сегодня проверял. Из-за этого терминалом GTWVT пока не пользуюсь совсем. Представляешь, что такое размер шрифта 8 (а он по умолчанию всегда такой) при разрешении экрана, к примеру, 1280х1024?

Лукашевский: Pasha пишет: http://groups.google.com/group/comp.lang.xharbour/topics?lnk=gschg Задаете вопрос. Получаете компетентный ответ, причем оперативно Какая-то там оперативность... неоперативная. За 14 часов мне пока никто не ответил За неделю тоже!

Andrey: А можно ли прикрутить к GTWVT вызов стандартного окна шрифтов ??? и получать по завершению: 1) выбранный шрифт 2) размер шрифта

Pasha: Функция wvt_choosefont

Andrey: Спасибо Паша ! Попробовал ее в действии и обнаружил что она возращает только имя фонта, а размер и все остальное не возращает. aFont := wvt_choosefont() IF LEN(aFont) > 0 FOR nI := 1 TO LEN(aFont) ? nI,aFont[nI] NEXT ENDIF // возвращает 1 System 2 1 3 0 4 700 5 1 6 .F. 7 .F. 8 .F. Что делать ?

Лукашевский: Pasha пишет: Так GTI_FONTWIDTH заработал ? Заработал, зараза! После того как я убрал из линковки TBROWSE, взятый когда-то из сырцов для исправления имевшейся там ошибки. А вот какая такая прочная-порочная зависимость между TBROWSE и HB_GtInfo() - непонятно...

Лукашевский: Лукашевский пишет: Делаю ярлык на EXEшник. При запуске получаю 2 окна - окно моей программы и рядом ещё одно, пустое! И соотв. внизу в статусной строке рабочего стола тоже две кнопки... Смотрю свойства пустого окна - там всё как надо - можно изменить шрифт, размер окна и т.д. - в отличие от окна моей программы, только вот во вкладке "Программа" в параметре "Командная строка" - какой-то C:\WINME\SYSTEM\conagent.exe Что бы это значило? Наконец-то разобрался! Оказывается, такая ситуация возникает, только если продолжить пользоваться ярлыком который был для Clipper-программы! А если сделать новый ярлык, то всё OK! Но возникает другая проблема: если указать в свойствах ярлыка "Совместимость с Windows'95", программа запускается в свёрнутом окне в панели задач, и чтобы ею воспользоваться, приходится кликать на ней мышкой...

Лукашевский: Лукашевский пишет: если указать в свойствах ярлыка "Совместимость с Windows'95", И ещё HB_GTInfo(GTI_WINTITLE, ....) в Win'XP для программы в свёрнутом состоянии при выставленной совместимости неправильно текст выводит (пустыми квадратиками). В связи с этим возникает 2 вопроса: 1) как программно развернуть терминалку GTWIN из свёрнутого состояния, и 2) как получить настройки ярлыка, которым запущена программа - потому что иначе я не понимаю, как точно определить, нужно ли при выводе GTI_WINTITLE использовать перекодировку HB_OEMToAnsi().

Andrey: Лукашевский пишет: 1) как программно развернуть терминалку GTWIN из свёрнутого состояния /* * ShowWindow() Commands в wvtwin.ch */ #define SW_NORMAL 1 #define SW_SHOWMINIMIZED 2 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SW_SHOWNOACTIVATE 4 #define SW_SHOW 5 ИЛИ смотри: Z:\xHarbour\contrib\wvtgui\ChangeLog 2004-01-26 14:10 UTC+0530 Pritpal Bedi <pritpal@vouchcac.com> * xharbour/source/rtl/gtwvt/gtwvt.c + Wvt_Minimize() Minimizes the application window. Useful when application is engaged in long uninterrupted tasks. + Wvt_Maximize() Maximizes, I mean, restores to normal position the previously minimized application window. Лукашевский пишет: 2) как получить настройки ярлыка, которым запущена программа - потому что иначе я не понимаю, как точно определить, нужно ли при выводе GTI_WINTITLE использовать перекодировку HB_OEMToAnsi(). Перекодировку делать нужно ! // - вывести заголовок окна и иконку окна cNameWin := HB_OEMTOANSI( "Тестовая задача для gtwvt-терминала !" ) GTInfo( 26, cNameWin ) GTInfo( 27, 'main.ico' )

Лукашевский: Andrey пишет: Перекодировку делать нужно ! Andrey, ты не уловил шутку юмора: у меня в программе стоит перекодировка HB_OemToAnsi() для выводимого под XP заголовка окна, это естественно. И при стандартных значениях свойств ярлыка, которым запускается программа, заголовок выводится нормально. Но если для того же самого ярлыка под тем же самым XP поставить в Свойствах во вкладке "Совместимость" галочку напротив "Совместимость с Windows'95", результат вывода заголовка станет печальным. Проверить-то легко, не поленись. Может возникнуть вопрос: зачем ставить эту галочку? Ну, во-первых, юзвери - товарищи по определению непредсказуемые, а во-вторых, эту галку надо ОБЯЗАТЕЛЬНО ставить, если на сервере стоит Win'9x, а на компах-клиентах - что-нибудь NTшное. Иначе будешь получать зависание на первой же попытке записи в базу (это, конечно, под чистым Clipper/xHarbour, под ADS такого эффекта может и не быть).

Лукашевский: Andrey пишет: ShowWindow() Commands в wvtwin.ch Начнём с того, что функция ShowWindow() не обнаруживается, хотя и gtwvt.lib и wvtgui.lib прилинкованы. Ладно, делаю ShowWindow() сам: HB_FUNC( SHOWWINDOW ) { ShowWindow( (HWND) hb_parnl(1), hb_parnl(2) ); } и пытаюсь юзать: ShowWindow(HB_GtInfo(GTI_GETWIN), 3) или ShowWindow(HB_GtInfo(GTI_WINTITLE), 3) На ошибке не сыплется, но и эффекта - НОЛЬ. Может, я невнятно объяснил задачу? Для винды окно у программы всегда одно (даже если терминал GTWVT, тамошние виндовые функции я не использую). Запускается программа, по какой-то причине (неважно) - в минимизированном окне. Как это самое окно развернуть? Можно конкретный пример, а не только упоминание о функции?

Andrey: Держи для GTWIN (для GTWVT - посмотрю чуть позже): /* см. описание GetForegroundWindow() */ INIT PROCEDURE GetHandle() PUBLIC hWnd := GetForegroundWindow() FUNCTION MAIN SETCOLOR("15/2") CLEAR SCREEN MINIMIZE( M->hWnd ) tone(800,2) INKEY(4) MAXIMIZE( M->hWnd ) tone(400,2) WAIT RETURN NIL /* * C - level */ #pragma BEGINDUMP #include "hbapi.h" #include <windows.h> HB_FUNC( GETFOREGROUNDWINDOW ) { hb_retnl( (LONG) GetForegroundWindow() ); } HB_FUNC( MINIMIZE ) { ShowWindow( (HWND) hb_parnl(1), SW_MINIMIZE ); } HB_FUNC( MAXIMIZE ) { ShowWindow( (HWND) hb_parnl(1), SW_RESTORE ); } #pragma ENDDUMP

Andrey: Держи для GTWVT: //-------------------------------------------------------------------// /* * ShowWindow() Commands */ #define SW_HIDE 0 #define SW_SHOWNORMAL 1 #define SW_NORMAL 1 #define SW_SHOWMINIMIZED 2 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SW_SHOWNOACTIVATE 4 #define SW_SHOW 5 #define SW_MINIMIZE 6 #define SW_SHOWMINNOACTIVE 7 #define SW_SHOWNA 8 #define SW_RESTORE 9 #define SW_SHOWDEFAULT 10 #define SW_FORCEMINIMIZE 11 #define SW_MAX 11 INIT PROCEDURE GetHandle() PUBLIC hWnd M->hWnd := GetForegroundWindow() FUNCTION MAIN SETCOLOR("15/2") CLEAR SCREEN Wvt_ShowWindow( M->hWnd, SW_MINIMIZE ) tone(800,2) INKEY(4) Wvt_ShowWindow( M->hWnd, SW_MAXIMIZE ) tone(400,2) WAIT RETURN NIL /* * C - level */ #pragma BEGINDUMP #include "hbapi.h" #include <windows.h> HB_FUNC( GETFOREGROUNDWINDOW ) { hb_retnl( (LONG) GetForegroundWindow() ); } //-------------------------------------------------------------------// // Взята из xHarbour\contrib\wvtgui\wvtutils.c и исправлена мною HB_FUNC( WVT_SHOWWINDOW ) { ShowWindow( (HWND) hb_parnl(1), hb_parni( 2 ) ); } #pragma ENDDUMP

Лукашевский: Andrey пишет: HB_FUNC( MAXIMIZE ) { ShowWindow( (HWND) hb_parnl(1), SW_RESTORE ); } Procedure Main Public i ..... i = GetForegroundWindow() MAXIMIZE(i) ..... Терминал GTWIN. НЕ РАБОТАЕТ! Как запустилось свёрнутым, так и остаётся, пока мышью не ткнёшь!

Dima: Лукашевский Глянь тему http://clipper.borda.ru/?1-4-0-00000354-000-10001-0 ЗЫ Хотя у тебя вроде виндоус линолиум , может и не сработать.

Andrey: У меня оба примера работают под WinXP SP3 ! Перед отправкой проверял. Dima пишет: виндоус линолиум А что это за винда ?

Dima: Andrey пишет: А что это за винда ? Microsoft Windows ME Millenium

Лукашевский: Dima пишет: Хотя у тебя вроде виндоус линолиум А мои предыдущие сообщения в теме посмотреть слабо? Я здесь о домашнем компе говорю, на нём Win'XP Home SP3, лицензионный. Andrey пишет: У меня оба примера работают под WinXP SP3 ! А у меня - не работает! Может быть, конечно, это из-за галки "Совместимость с Windows'95" в свойствах ярлыка... Надо будет проверить в нормальных условиях.

Лукашевский: Dima пишет: Глянь тему http://clipper.borda.ru/?1-4-0-00000354-000-10001-0 Dima, спасибо большое! Петру тоже спасибо Теперь бы ещё иметь какую-нить возможность выяснить, запущена ли программа в режиме совместимости, или нет, - и проблема будет решена. А то заголовок окна GTWIN в режиме совместимости всё так же пугает кракозябрами и пустыми квадратиками...



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