Форум » GUI » Чтение строк из ресурса » Ответить

Чтение строк из ресурса

SerLog: Понадобилось как-то прочитать строку из ресурса. В примерах не нашел. Может кому пригодится. *test.rc STRINGTABLE { 1 , "Строка 1" 2 , "Строка 2" } **test.prg #include "minigui.ch" FUNCTION Main() MsgInfo(GetStringRes(1)+Chr(13)+Chr(10)+GetStringRes(2)) RETURN NIL #pragma BEGINDUMP #include <windows.h> #include "hbapi.h" HB_FUNC( GETSTRINGRES) { char * szBuffer=" "; LoadString( GetModuleHandle(NULL), hb_parnl( 1 ),szBuffer,256) ; hb_retc(szBuffer); } #pragma ENDDUMP

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

Andrey: SerLog пишет: В примерах не нашел. Может кому пригодится. Конечно пригодиться. Спасибо. И еще вопрос в эту же тему, а как вытащить bmp из ресурсов ? Только желательно без MINIGUI для терминала GTWVT GTWVW.

Петр: SerLog пишет: В примерах не нашел. Плохо смотрел :) Advanced\FrameWork\demo.prg Function GetResStr( nID ) *------------------------------------------------------------- Return HB_LoadString( nID ) #pragma BEGINDUMP #include <windows.h> #include "hbapi.h" #include "hbapiitm.h" HB_FUNC( HB_LOADSTRING ) { LPBYTE cBuffer; cBuffer = GlobalAlloc(GPTR, 255); //!!! LoadString(GetModuleHandle(NULL), hb_parni(1), (LPSTR) cBuffer, 254); hb_retc(cBuffer); GlobalFree(cBuffer); //!!! } #pragma ENDВDUMP Andrey пишет: И еще вопрос в эту же тему, а как вытащить bmp из ресурсов ? Только желательно без MINIGUI для терминала GTWVT GTWVW. MINIGUI ( ) использует для этих целей WinAPI LoadImage - The LoadImage function loads an icon, cursor, or bitmap Например IMAGE пытается сначала загрузить bmp сначала из дискового файла hpic2 = (HBITMAP)LoadImage(0,filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION); потом из ресурса if (hpic2==NULL) hpic2 = (HBITMAP)LoadImage(GetModuleHandle(NULL),filename,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION); и т.д. Рекомендую все таки скачать MINIGUI, независимо то того используете ее или нет. Открытый код - всегда можна что-то подсмотреть.

Петр: Что же касается GTWVT, то в ней реализованы такие функции как hb_wvt_gtLoadPicture, hb_wvt_gtLoadPictureFromResource, hb_wvt_gtRenderPicture, hb_wvt_gtDestroyPicture - может это оно?


Andrey: Петр, нет описания к ним, я уже их по разному вызывал, не работают. Я понимаю, что "кривые руки" и все такое, но нет примеров хотя бы по ним, а без этого не разобраться. Я хочу файл из ресурса вывести на экран формы. Разобрался с примерами и нашел только в CONTRIB\GTWVW\SAMPLES\PROG2.PRG строка 68 AddMiscObjects( 0, {|nWindow| WVW_DrawImage( nWindow, 1,0,nmaxrow,nmaxcol, 'demo1.bmp' ) } ) а он только выводит из файла, а я хочу из ресурса. Если знаешь, то подскажи пожалуйста.

Andrey: Петр пишет: Что же касается GTWVT, то в ней реализованы такие функции как hb_wvt_gtLoadPicture, hb_wvt_gtLoadPictureFromResource, hb_wvt_gtRenderPicture, hb_wvt_gtDestroyPicture - может это оно? У кого есть примеры использования этих функций ?

Петр: Andrey пишет: а он только выводит из файла, а я хочу из ресурса. * Win_LoadImage( ncImage, nSource ) -> hImage * nSource == 0 ResourceIdByNumber * nSource == 0 ResourceIdByName * nSource == 0 ImageFromDiskFile

Andrey: Да не пашет это, я пробовал. Не могу потом вывести картинку на форму. AddMiscObjects( 0, {|nWindow| WVW_DrawImage( nWindow, 1,0,nmaxrow,nmaxcol, 'demo1.bmp' ) } ) Как заместо demo1.bmp засунуть вывод из ресурса ?

Петр: Andrey Ты хоть свой вопрос помнишь? Andrey пишет: И еще вопрос в эту же тему, а как вытащить bmp из ресурсов ? вытащить bmp из ресурсов != вывести картинку на форму

Andrey: Каюсь, за такую постановку вопроса. Ну извините меня. А что делать с этим BMP или JPG, ведь потом выводить надо. Тогда перефразирую вопрос. Как прочитать BMP или JPG или ICO из файлов ресурса и вывести на форму для GTWVW-терминала ?

Dima: Andrey Решил вопрос ?

Andrey: Dima пишет: Решил вопрос ? Так никто не помог, наверно никто не ставил перед собой такую задачу....

SergKis: Andrey пишет:Так никто не помог, наверно никто не ставил перед собой такую задачу.... Если из файла вывести на форму для GTWVW-терминала получается, то из ресурсов достаньте и положите на файл. Потом удалите файл. Как достать из ресурса и положить в файл было в теме : Как "зашить" ini-ник в ЕХЕ-файл ? http://clipper.borda.ru/?1-4-0-00000821-000-0-0-1363859258 SergKis Отправлено: 20.03.13 14:51. и Отправлено: 20.03.13 16:01 Дополнительно:[pre2] ================================= RC DT_TM_ ICON datetime_.ico datetime BITMAP datetime.bmp ... pvn.lv CUSTOM Pvn.lv pvn.ru CUSTOM Pvn.ru pvn0.dbf CUSTOM Pvn0.dbf dtm.bmp CUSTOM datetime.bmp dtm.ico CUSTOM datetime.ico ================================= примеры Res2File('pvn.lv' , '.\hbk\ini\pvn.lv') // по умолчанию берет 'CUSTOM' Res2File('pvn.ru' , '.\hbk\ini\pvn.ru') Res2File('DT_TM_' , 'DateTime.ico' , 'ICON' ) Res2File('datetime', 'DateTime.bmp' , 'BITMAP') Res2File('pvn0.dbf', '.\DataBase\pvn0.dbf', 'CUSTOM') Res2File('dtm.bmp' , 'dtm.bmp' , 'CUSTOM') Res2File('dtm.oco' , 'dtm.ico' , 'CUSTOM') [/pre2]

Andrey: SergKis Спасибо БОЛЬШОЕ ! Как всегда - помощь номер ОДИН !!! Даже на глупые вопросы...

Dima: SergKis Не пашет однако. RC [pre2] MainIcon ICON "111.ico" LOGO1 BITMAP "l2.bmp" [/pre2] Res2File("c:\temp\LOGO.bmp",'l2.bmp' ,'BITMAP') // .f. bkApi_LoadResource(bkApi_GetInst(), cRes, cTip) // empty

SergKis: Dima Res2File("c:\temp\LOGO.bmp",'l2.bmp' ,'BITMAP') параметры: Res2File(<ResName>, <FileName>, <TypeRes>)

SergKis: Вот мой RC:[pre2] tools BITMAP tools.bmp doc_act BITMAP doc_act.bmp doc_excel BITMAP doc_excel.bmp doc_pdf BITMAP doc_pdf.bmp doc_word BITMAP doc_word.bmp sort_asc BITMAP sort1_asc.bmp sum BITMAP sum.bmp undo BITMAP undo.bmp empty BITMAP br_emp.bmp ok BITMAP br_ok.bmp no BITMAP br_no.bmp up BITMAP up.bmp down BITMAP down.bmp pvn.lv CUSTOM Pvn.lv pvn0.dbf CUSTOM Pvn0.dbf [/pre2]

Dima: SergKis Исходник FUNCTION Res2File( cFile, cRes, cTip ) LOCAL j, l IF file(cFile); RETURN .T. ENDIF Default cTip To "CUSTOM" j := bkApi_LoadResource(bkApi_GetInst(), cRes, cTip) l := ! empty(j) .and. valtype(j) == "C" IF l; hb_memowrit(cFile, j) ENDIF RETURN l SergKis пишет: Res2File("c:\temp\LOGO.bmp",'l2.bmp' ,'BITMAP') параметры: Res2File(<ResName>, <FileName>, <TypeRes>) я так и не понял где не прав или не ту функцию юзаю (Res2File) ?;)

SergKis: Dimaя так и не понял где не прав или не ту функцию юзаю (Res2File) ? Я не прав. На бегу смотрю - уже клинит. Каюсь. Эту функцию использую для CUSTOM еще со времен VO, возможно для других типов не доделано. Сделай : LOGO1 CUSTOM "2.bmp

Dima: SergKis Не работает ни так ни сяк.

Dima: А как по хендлу полученному через Wvg_LoadImage( "LOGO1", 1) , загрузить в память картинку и затем сложить ее на диск в файл ?



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