Usando animações...

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Usando animações...

Mensagem por FFreire »

Prezados...

Estava usando em uma função da minigui um arquivo com extensão .ani, que é uma animação, no caso era uma ampulheta que gira, igual uma que tinha no windows xp... estava usando quando o sistema esta em processamento, então dei uma incrementada em meus processamentos... até aí beleza...

Mas dai resolvi colocar meus bitmaps no arquivo .RC, para não ter que ficar atualizando/levando para o cliente toda a vez que adiciono novos botões/telas, com relação aos bitmaps, ok, sem problemas... mas como fazer para colocar no RC o arquivo .ANI, ja tentei assim:

IM__PROCESSO ANI MSG_PROCESSO.ANI

Ai uso na chamada da função assim:

Msg('Em processamento...','IM__PROCESSO')

Não dá erro, mas não funciona, alguma sugestão ??? O arquivo acima é um GIF que converti para ANI e se eu colocar a chamada dele, sem usar o RC, funciona normal...

F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Usando animações...

Mensagem por FFreire »

Bom dia...

Eita, achei uma solução...

Lendo aqui no fórum, vi que posso extrair o arquivo que esta dentro do EXE... o que fiz então...

Coloquei no .RC assim:

IM__PROCESSO RCDATA MSG_PROCESSO.ANI

Dai dentro do meu sistema, usei o RESTOFILE('IM__PROCESSO'), que é uma função em C que vai ler do EXE e gerar o arquivo MSG_PROCESSO.ANI, essa função achei aqui no fórum, postada pelo TOLEDO.

Dai dentro do sistema, uso a animação, como se tivesse mandado o arquivo, ou seja, a versão atualizada esta sempre no EXE...

F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Usando animações...

Mensagem por FFreire »

Fiz apenas um pequeno ajuste para poder passar como parametro o caminho/nome do arquivo a ser gerado, ficando dessa forma...

Código: Selecionar todos

// Chamada
ResToFile("IM__PROCESSO","./IMG/msg_processo.ani")

#pragma BEGINDUMP
#include <Windows.h>
#include <hbApi.h>

HB_FUNC( RESTOFILE )
{
 static HRSRC hr;
 static HGLOBAL hg;
 static DWORD bytesWritten;
 static DWORD size;
 static HGLOBAL hFile;
 static LPVOID lpRcData = NULL;

 hr = FindResource( NULL, (LPSTR) hb_parc( 1 ), RT_RCDATA );
 if( ! ( hr == 0 ) )
   {
    hg = LoadResource( NULL, hr );
    if( ! ( hg == 0 ) )
      {
       size = SizeofResource(NULL,hr);
       lpRcData = LockResource( hg );
       hFile=CreateFile(hb_parc(2),GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
       WriteFile(hFile,lpRcData,size,&bytesWritten,NULL);
       CloseHandle(hFile);
      }
   }
}

#pragma ENDDUMP
O ajuste foi no CreateFile() -> o primeiro parametro era informado manualmente o nome do arquivo a ser gerada, agora passo como segundo parametro na chamada da função RESTOFILE() !

Minha necessidade, foi sanada e espero ter contribuído...

F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Responder