Форум » [x]Harbour » Консоль + картинки » Ответить

Консоль + картинки

Dima: Как в консоли вывести на экран картинку ? Если можно то нужен примерчик !

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

Dima: Andrey пишет: Ничего не сворачивал... Запустил и жду... У меня норм , запустил и ждал пока ужин готовил (это длилось больше 8 секунд). Ни чего не пропало. Но вот если свернуть и развернуть окно тогда жо..а

Andrey: Dima пишет: Но вот если свернуть и развернуть окно тогда жо..а А у тебя в программе тоже так ?

Dima: Andrey пишет: А у тебя в программе тоже так ? Нет, примерно так


Andrey: Dima пишет: Нет, примерно так Я тебя серьезно спрашиваю, а ты обиделся что-то ..... Но картинка красивая .... Мне понравилась.... Пойду повешу кому-нибудь на рабочий стол.... Вот смеху то будет....

Dima: Andrey Давай ка лучше разберемся почему при сворачивании и разворачивании окна на нем теряется графика. Мысли есть что нужно делать ? Andrey пишет: Пойду повешу кому-нибудь на рабочий стол.... Вот смеху то будет.... Для этого дела я могу тебе и по круче картинку дать

Pasha: Dima пишет: Короче WM_PAINT нужно юзать , вот только как это сделать правильно применительно пусть да же к этому примеру я не знаю. Все правильно. Выводить картинки надо в обработчике on paint. Как это сделать - можно глянуть в примере demowvg.prg

Dima: Pasha Павел а для особо бестолковых , для тех кто только слез с велосипеда (с Clipper) можно показать на простом примере как это реализовать ? Скажем окно , в нем картинка и простейший Achoice() Заранее спасибо ! PS Пример смотрел но не понял сходу как правильно сделать.

Pasha: В программе должна быть функция с именем wvt_Paint. Эта функция будет вызываться по событию WM_PAINT Пример функции: FUNCTION Wvt_Paint() Wvt_DrawImage(...) ... WvtPaintObjects() RETURN 0 Но надо учитывать, что эту функцию терминал wvt будет вызывать при каждом событии WM_PAINT, так что функция должна определять, когда надо выводить картинку, а когда нет. В примерах этой функции передается массив блоков кода, которые она выполняет. Для каждого окна это будет разные массивы. Пример: FUNCTION Wvt_Paint() // aBlocks - массив блоков кода. Он может быть static, public, или как-то по другому организован. aEval( aBlocks, {|e| eval( e ) } ) WvtPaintObjects() RETURN 0

Dima: Pasha Объясни пожалуйста на простом примере ;) ! Не догнал я.......(простуда достала уже) Что в нем нужно изменить , что бы при сворачивании окно не портилось ? ************ #include 'wvtwin.ch' #include "hbgtinfo.ch" Proc main() local nWidth,nHight hb_gtInfo(GTI_CODEPAGE, 255) hb_gtInfo(GTI_FONTNAME, 'Lucida Console') hb_gtInfo(HB_GTI_FONTQUALITY,3) nwidth:=1280/Wvt_GetScreenWidth() nHight:=1024/Wvt_GetScreenHeight() hb_gtInfo(GTI_FONTWIDTH, 16/nwidth) hb_gtInfo(GTI_FONTSIZE, 38/nHight) @ 0,0 say padc(alltrim(version()),80) color "n/w" @ 24,0 say padc(alltrim(os()),80) color "n/w" Wvt_DrawImage( 1,0,23,79, "111.jpg" ) achoice(10,20,20,40,{"Тест","Тест 1"}) quit return ***************

Pasha: вот так #include 'wvtwin.ch' #include "hbgtinfo.ch" Proc main() local nWidth,nHight hb_gtInfo(GTI_CODEPAGE, 255) hb_gtInfo(GTI_FONTNAME, 'Lucida Console') hb_gtInfo(HB_GTI_FONTQUALITY,3) nwidth:=1280/Wvt_GetScreenWidth() nHight:=1024/Wvt_GetScreenHeight() hb_gtInfo(GTI_FONTWIDTH, 16/nwidth) hb_gtInfo(GTI_FONTSIZE, 38/nHight) @ 0,0 say padc(alltrim(version()),80) color "n/w" @ 24,0 say padc(alltrim(os()),80) color "n/w" achoice(10,20,20,40,{"Тест","Тест 1"}) quit return FUNCTION Wvt_Paint() Wvt_DrawImage( 1,0,23,79, "111.jpg" ) WvtPaintObjects() RETURN 0

Dima: Pasha Спасибо !!! Только Achoice куда то теряется в этом случае.

Pasha: Так нужно выводить фоновый рисунок ? Кажется, wvt это не умеет. Wvt_SetBrush задает только фон. Прозрачный рисунок выводить нельзя. Можно после Wvt_DrawImage выводить тест посредством Wvt_Label, в функции wvt_paint Впрочем, я все эти средства не использую, может и есть другой вариант.

Dima: Pasha То есть все графические примитивы в WVT следует выводить на экран только через wvt_paint , я правильно понял ? Подружить эти графические примитивы будет сложно с обычными функциями вывода на экран. Так ? Просто хочу для себя уяснить.

Pasha: Да, выводить рисунки, линии, рамки надо только в wvt_paint(). Если они располагаются в отдельной области экрана, то проблем нет. Если в той же области экрана надо выводить что-то еще поверх рисунка, вывод также должен быть в wvt_paint()

Dima: Pasha Спасибо !!!

Andrey: Dima пишет: Pasha Спасибо !!! Присоединяюсь !!! Спасибо !

Andrey: Dima пишет: То есть все графические примитивы в WVT следует выводить на экран только через wvt_paint , я правильно понял ? Подружить эти графические примитивы будет сложно с обычными функциями вывода на экран. Так ? Просто хочу для себя уяснить. Дима, как ты решил проблему с показом фонового рисунка ?

Dima: Andrey пишет: Дима, как ты решил проблему с показом фонового рисунка ? Ни как. Показываю как и показывал.

Andrey: Dima пишет: Ни как. Показываю как и показывал. А если за окно мышкой потаскать по экрану и вниз, картинка стирается ? У меня стирается ....

Aleksandr_D: Подскажите почему функция wvt_SetGUI( .T. ) для терминального режима не переключается в графический режим? Часть текстов: #include "hbgtinfo.ch" #include 'wvtwin.ch' #require "gtwvg" #include "hbclass.ch" #include "hbgtwvg.ch" #include "wvgparts.ch" REQUEST HB_GT_WVG_DEFAULT REQUEST HB_GT_WVT xx := wvt_SetGUI( .T. ) && Не переключает в графический режим. Файл сборки *.HBP -hbexe -n -inc -q0 -es2 -prgflag=-D__NO_HWGUI__ -prgflag={win}-DGTWVT -std #-gtwvg -info -trace -ldflag=-c -ldflag=-tW -ldflag=-M # folder where there will be all * .obj -workdir=… # the name of the EXE module -o…. # paths to the main and extension * .Lib -lhbct -lhbblink -lhbblink-bcc -lhbmemio # Для графического эмулятора терминала {win}zp_.rc gtwvg.hbc #gtwvg.hbx xhb.hbc -prgflag=/b -prgflag=/n -prgflag=/m -prgflag=/q -prgflag=/dGTWVT -prgflag=/dBLINKER @ZP.hbm



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