Salvando resource

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Salvando resource

Mensagem por JoséQuintas »

Não consegui usar resource nos botões da gtwvg. Alterei os fontes mas não deu certo.
Então o plano B:
Adicionei os ícones no resource, que são adicionados ao EXE, funcionou ok a adição. (via arquivo rc).
Agora, como fazer o contrário: o EXE extrair os resources para o disco?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Salvando resource

Mensagem por JoséQuintas »

O problema de usar resource em botões resolvi usando bitmap, que é a parte que está funcionando na gtwvg.
Mas isso por enquanto só funciona pra botões.

Ao invés da lista reduzir, aumentou:
- Como pegar uma imagem que está no resource e salvar em disco
- Como converter o resource de jpg ou outro pra bmp (um bmp de fundo pode aumentar o EXE em 5MB, JPG seria melhor)
- como fazer o resize da imagem
- Como incluir a imagem do resource no PDF da harupdf
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Salvando resource

Mensagem por JoséQuintas »

Tentei pesquisar, mas acabei chegando nesta mensagem.

Depois destes anos, ainda não descobri:

- Como salvar imagens de resource - via código
- Como usar resources no PDF

Também encontrei outra postagem minha de 2012, no harbour-users, sem resposta.

No VB6 era só usar SaveResource()....


Até encontrei esta página, mas não faço a menor idéia de como transformar esse código C++ pra Harbour.

http://www.codeproject.com/Articles/422 ... -resources

Nota:
Pra necessidade atual, usar direto a imagem de resource no PDF, seria até mais interessante do que salvar em disco.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Vander
Usuário Nível 3
Usuário Nível 3
Mensagens: 214
Registrado em: 23 Jul 2004 01:43
Localização: João Monlevade - MG

Salvando resource

Mensagem por Vander »

Tente usar o ResHacker talvez resolva em parte.

Vander
HbMake v1.17
xHarbour build 0.99.70 Intl. (SimpLex)
Borland C++ 5.5.1
fivewin 6.12 (FREE)
Workshop 4.5
MEdit
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Salvando resource

Mensagem por JoséQuintas »

Infelizmente não tem nada a ver.
Minha intenção é que apenas o EXE seja suficiente pra tudo, sem ter que deixar mais arquivos na pasta.
Justamente para que isso aconteça, é usar as imagens em resource, direta ou indiretamente.

1. O aplicativo gera PDF com imagem.
a) O aplicativo transferir essa imagem direto de resource para o PDF
b) Na falta disso, o aplicativo salvar esse resource em disco para depois utilizá-lo no PDF

2. Em outras situações, salvar a imagem em disco

O aplicativo poderia até baixar da internet, mas isso é problema aonde o acesso à internet é bloqueado.

Simplificando:
As imagens já estão no EXE, como resource.
Falta o EXE conseguir usá-las.
(por enquanto só consegue isso pra botões).
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Salvando resource

Mensagem por Toledo »

Olá Quintas, veja este demo em anexo, para compilar use: HBMK2 demo2 demo2.rc

Abraços,
Anexos
resToFile.zip
(9.15 KiB) Baixado 43 vezes
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Salvando resource

Mensagem por Toledo »

No demo2.prg está cFileRes:=ResToFile("IMGJPG","TESTE.JPG"), mas basta ResToFile("IMGJPG","TESTE.JPG")

E no arquivo RC, retire a primeira linha: README RCDATA read_me.txt

Obs.: eu usava esta função para outra coisa, então acabei fazendo uma cópia e esqueci dos detalhes acima.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Salvando resource

Mensagem por JoséQuintas »

O Victor mostrou uma opção que eu não conhecia:

Código: Selecionar todos

hb_MemoWrit( "teste.bin", _my_binary_resource() )
...

FUNCTION _my_binary_resource()
   #pragma __binarystreaminclude "cfilename" | RETURN %s
Testei aqui.
Deste jeito, a função vai retornar o conteúdo do arquivo, que vai ser embutido na compilação.
Essa rotina funciona como uma espécie de #include, mas vai ser embutido no EXE, e não na função como o #include tradicional.

https://github.com/vszakats/harbour-cor ... -158074796

Toledo, valeu.
Deixar a sua rotina fazendo parte do meu aplicativo.
Acho que agora depende da situação pra escolher entre uma e outra opção.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder