Форум » [x]Harbour » Wvt_DrawPicture » Ответить

Wvt_DrawPicture

Dima: Wvt_DrawPicture( nTop, nLeft, nBottom, nRight, nSlot, aPxlOff, lDoNotScale ) Что означает параметр nSlot ? Хотел вывести картинку из ресурса зашитого в EXE. Сейчас приходится эту картинку вытаскивать в файл и показывать с помощью Wvt_DrawImage()

Ответов - 19

Dima: Разобрался. В начале юзаем WVT_LOADPICTUREFROMRESOURCE и там юзаем любой номер слота Затем юзаем Wvt_DrawImage() но в 5 параметре указываем не имя файла а номер слота. Вопрос. Ну поюзал я картинку и она более не нужна , как ее грохнуть в оперативке ?

Andrey: Dima пишет: номер слота А что за зверь такой ?

Dima: Andrey пишет: А что за зверь такой ? Просто цифра по которой грузанется картинка из WVT_LOADPICTUREFROMRESOURCE Пример WVT_LOADPICTUREFROMRESOURCE( 1, "LOGO1", "CUSTOM" ) Wvt_DrawImage(1, 33, 5, 43, 1) WVT_LOADPICTUREFROMRESOURCE( 2, "LOGO3", "CUSTOM" ) Wvt_DrawImage( 13, 1, 22, 17, 2)


Dima: Вопрос как избавится от того что грузанул WVT_LOADPICTUREFROMRESOURCE Есть такая функция WVT_DESTROYPICTURE и ей нужен hIPicture , я так понял это хендл картинки. Где его взять то ? ;)

Haz: Dima пишет: Где его взять то ? не оно: HB_FUNC( WVT_LOADPICTUREEX ) <- <cFilePicture> -> <hIPicture> Правда не из ресурса ((( но есть и HB_FUNC( WVT_LOADPICTUREFROMRESOURCEEX )

Dima: а в чем разница между WVT_LOADPICTUREFROMRESOURCEEX и WVT_LOADPICTUREFROMRESOURCE ? в Cишном сырце я не разберусь. у последней такие параметры WVT_LOADPICTUREFROMRESOURCE( nPictureSlot, cResource, cSection )

Haz: Вроде одна возвращает lSuccess а вторая hPicture параметры по сырцам WVT_LOADPICTUREFROMRESOURCEEX( cResource, cSection ) .т.е. Slot не используется

Dima: Пока курил все понял. Пришел а ты все уже написал.

Dima: Получается в начале WVT_LOADPICTUREFROMRESOURCEEX Затем WVT_DRAWPICTUREEX Затем WVT_DESTROYPICTURE

Andrey: А что будет, если не выполнять WVT_DESTROYPICTURE ?

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

Haz: Dima пишет: Потестил и как бы ни чего смертельного не увидел если не выполнять. мож просто память под загруженную картинку не освобождается при работе проги? А если в цикле ( пример из области фантастики ) FOR n := 1 TO 1000000 WVT_LOADPICTUREFROMRESOURCEEX без дестроя - не свалится ? А так думаю в реальной жизни пофиг ))

Dima: Игорь в реале я сделал так. Эксперимент был не один. В начале прога из 2-х строк. Что то типа WVT_LOADPICTUREFROMRESOURCEEX............... , получаю что то типа 2564064 и потом WVT_DRAWPICTUREEX (13, 1, 22, 17,2564064) все норм и QUIT Затем прога из одой строки WVT_LOADPICTUREFROMRESOURCEEX и получаю такой же хендл Ну а затем "смелый" такой эксперимент типа WVT_DRAWPICTUREEX (13, 1, 22, 17,2564064) и упс прога упала. Вероятно в памяти пикчи нет. И да работу WVT_DESTROYPICTURE тоже проверил , работает однако.

Haz: Значит при закрытии проги память освобождается и в обычной программе можно наплевать на дестрой

Dima: Это я уже понял Игорь , просто хотел подстраховаться и быть уверенным что все нормик. Спасибо что уделил время !

Dima: Haz пишет: А если в цикле ( пример из области фантастики ) Проверил фантастику c одной и той же пикчей ? WVT_LOADPICTUREFROMRESOURCEEX ? WVT_LOADPICTUREFROMRESOURCEEX Не падает НО хендлы разные

Haz: Dima пишет: Проверил фантастику c одной и той же пикчей ну ты неугомонный

Dima: Haz пишет: ну ты неугомонный Да бывает у меня ;) Вот и думаю теперича. Стоит прогу переделать или нет. Там правда пару строк всего , но все же ;) Сейчас извлекаю картинку из ресурса , сохраняю на диск и затем показываю. Можно извлекать как бы в оперативу (сырец не изучал так как в СИ не шарю) и показывать картиночку уже из оперативы. PS прога сетевая

Haz: если оч много раз извлекаешь и показываешь то стоит, иначе забей и не мешай проге работать . Эстетичнее конечно обойтись без файловых операций там где они не нужны по сути, но как говорится а профит то в чем будет



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