Iniciando testes com HMG 3.4.2

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Iniciando testes com HMG 3.4.2

Mensagem por asimoes »

Pessaol,

Estou iniciando testes com HMG 3.4.2 tem muita coisa para aprender e entender como eu já faço com a minigui 2.5.x

Estou qurendo saber como definir a tabela de caracteres em português:

No meu programa de testes está assim:

Código: Selecionar todos

INIT FUNCTION AppSetup
   ErrorSistema()
   REQUEST HB_LANG_PT
   REQUEST HB_CODEPAGE_PT850
   SET DATE BRITISH
   SET EPOCH TO 2000
   SET CENTURY ON
   SET TOOLTIPSTYLE BALLOON 
   SET LANGUAGE TO PORTUGUESE
   SET TOOLTIPSTYLE BALLOON 
   SET MULTIPLE OFF
   SET CODEPAGE TO PORTUGUESE
   HB_LANGSELECT("PT")
   HB_SETCODEPAGE( "PT850" )
   HB_CDPSELECT("PT850")
RETURN Nil
Caracteres não estão com a acentuação correta, estou usando o ultraedit com fonte courier new, usando a acentuação correta, tem algum set a mais para fazer?
Deveria apresentar Alexandre Simões e Contruído
Imagem
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Iniciando testes com HMG 3.4.2

Mensagem por asimoes »

Tem um exemplo na pasta C:\hmg.3.4.2\SAMPLES\Applications\AGENDA

Modifiquei o código, inclui

SET CODEPAGE TO PORTUGUESE

A janela ficou assim:

Imagem

Apesar dos campos estarém com acentuação correta, os labels não estão.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Iniciando testes com HMG 3.4.2

Mensagem por alxsts »

Olá!

Experimete:

Código: Selecionar todos

Request HB_LANG_PT
Request HB_CODEPAGE_PTISO

function main ()

HB_SETCODEPAGE("PTISO")
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Iniciando testes com HMG 3.4.2

Mensagem por asimoes »

Funcionou!
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por microvolution »

Olá pessoal...
estou iniciando os testes da HMG 3.4.2...
Nota: para que fique bem claro e não haja dúvida:
Só consegui migrar pela primeira vez em 01/2015 com a ajuda da HMG 3.0.35 oferecida pelo professor Pablo.
Após ter tido dificuldade (por falta de tempo para aprender) em criar formulários, resolvi dar uma pausa nos estudos, para descansar a cabeça e no final de 2015 o professor JQuintas me apresentou e me ajudou a compilar no braço (sem ajuda da IDE/HMG) o harbour puro usando o hbmk2 e ao mesmo tempo a lib GTWVG.
Também, testei a lib GTWVW que também achei muito bacana.
Mas, então, pensei em ver as novidades da HMG. E aí, descobri essa versão 3.4.2 que vem com a pasta contribs e dentro a GTWVG.
Bom, se existe, é porque é pra usar em conjunto! Certo?
Então, estou com dúvida na guia configuração desta versão da HMG que é diferente da HMG 3.0.35 que vem com a guia CONFIGURAÇÃO previamente preenchida.
Ao contrário da versão 3.4.2 que não vem com nada.
Então, pesquisando aqui no fórum achei alguma coisa, mas, acredito não estar dando certo.
Por favor vejam como ficou a guia CONFIGURAÇÃO:

Código: Selecionar todos

incpaths=
libpaths=C:\hmg.3.4.2\lib\win\gtwvg
libs=gtwvg
gt=gtwin
instpaths=
Observem que coloquei o LIBPATHS indicando o caminho para achar a lib GTWVG. Ela está em 2 lugares dentro da hmg 3.4.2:
- dentro de harbour/contrib; e
- dentro da pasta acima.
Já tentei todas as variações possíveis:
- C:\hmg.3.4.2\lib
- C:\hmg.3.4.2\lib\win
- C:\hmg.3.4.2\harbour\contrib
- C:\hmg.3.4.2\harbour\contrib\gtwvg
Acontece que infelizmente a mensagem de erro é a mesma, informando que não existe a lib GTWVG, vejam, por favor:

Código: Selecionar todos

C:/MVinfo/hmg.3.4.2/mingw/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lgtwvg
De repente está faltando algum SET nas variáveis de ambiente do Windows, sei lá!!!
Alguém pode me dar uma dica?
PS: 1- WINDOWS 10/64.
2- baixei e instalei do mesmo jeito que está no http://www.hmgforum.com
Abraços!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por Toledo »

microvolution escreveu:libpaths=C:\hmg.3.4.2\lib\win\gtwvg
Amigo, você tem certeza que esta pasta existe... é bom verificar.

O comando libpaths deve ser usado quando a pasta das LIBs forem diferente do padrão, tanto as LIBs do Harbour como as da MiniGui, então se a instalação da MiniGui foi na pasta padrão de instalação, não seria necessário este comando.
microvolution escreveu:baixei e instalei do mesmo jeito que está no http://www.hmgforum.com
De acordo com a mensagem de erro, tem alguma coisa errada ai...

Código: Selecionar todos

C:/MVinfo/hmg.3.4.2/mingw/bin/...
A pasta C:/MVinfo/ não é a pasta original de instalação da HMG.

Obs.: esta seção do fórum é sobre MiniGui/HMG, então dúvidas sobre outras LIBs devem ser postadas na seção correspondente.

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
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por microvolution »

Toledo escreveu:Amigo, você tem certeza que esta pasta existe... é bom verificar.
mil perdões professor Toledo...
é que testei tantas alternativas que não deram certo.
A única coisa que alterei, por questões de organização de minha parte, pois a unidade C: além de ser a instalação do windows e seus complementos (documentos, arquivos de programas, etc), ficaria também lotada, com tantas versões instaladas não só da HMG mas, do delphi, c, etc...
Então para padronizar tudo que é de programação, criei à parte a pasta(unidade) MVINFO.
Então, o caminho correto (apenas pra vocês estava errado) é:
C:\MVINFO\HMG.3.4.2\etc...
Toledo escreveu: esta seção do fórum é sobre MiniGui/HMG, então dúvidas sobre outras LIBs devem ser postadas na seção correspondente.
mais uma vez obrigado pela observação, e, aliás tenho começado a aprender e entender o fórum, e, por isso, tenho certeza convicta que não estou tratando de outra(s) lib(s), mas, e, tão somente da HMG.
Portanto, o que quero é explorar o combo que o Roberto Lopez nos permitiu, ao colocar na pasta contrib outra lib gráfica que é a GTWVG.
Por exemplo, peguei um outro aplicativo meu, que está 100% em HMG que está parado na mesa aqui desde dezembro/2015, pois, estava conhecendo a GTWVG e peguei outro aplicativo menor para testar...
Peguei-o novamente para compilar (a última compilação foi feita com a hmg 3.0.46) agora neste exato momento. A mensagem de erro foi a seguinte:

Código: Selecionar todos

C:\MVinfo\MIGRAR\SiCCoSV\SiCCOSV\SiCCOSV.1.01\sci10000\pci10000.prg(216) Error F0029  Can't open #include file 'hbwin.ch'
Bom, na linha de erro acima, que está dentro do PCI1000.PRG (não importa onde o .PRG esteja), informa que não encontra a INCLUDE HBWIN.CH.
As linhas do .PRG acima que contém esta chamada são:

Código: Selecionar todos

#include "hbwin.ch" // eliminado provisoriamente 3/6/15w
// #include "C:\MVinfo\hb34\contrib\hbwin\hbwin.ch" // eliminado provisoriamente 3/6/15w
// #include "..\..\hb34\contrib\hbwin\hbwin.ch"
// C:\MVinfo\hmg.3.4.2\HARBOUR\contrib\hbwin
Epa! xiiiiii tem alguma coisa errada, ou melhor muita.
Por favor não se assustem, a gente explica.
Todos nós que conhecemos um pouco do MSDOS sabemos que não importa onde esteja, e, nem aonde estará, nem donde veio... mas, sim que seja informado ao MSDOS o caminho correto do arquivo. Em questão o HBWIN.CH.
Então, a primeira linha, que não está comentada, deveria funcionar, e, as outras que estão comentadas, não fazem diferença.
Mas, agora, o caminho correto do arquivo é:
C:\MVinfo\hmg.3.4.2\HARBOUR\contrib\hbwin
Então se eu comentar a primeira linha e descomentar a última, ficando assim:

Código: Selecionar todos

// #include "hbwin.ch" // eliminado provisoriamente 3/6/15w
// #include "C:\MVinfo\hb34\contrib\hbwin\hbwin.ch" // eliminado provisoriamente 3/6/15w
// #include "..\..\hb34\contrib\hbwin\hbwin.ch"
#include "C:\MVinfo\hmg.3.4.2\HARBOUR\contrib\hbwin\hbwin.ch"
Aí o erro para de acontecer.
Então, aqui neste caso (apesar de não concordar também) foi resolvido, pois informei para o compilador da HMG (pois uso a IDE para facilitar) o local correto do HBWIN.CH.
Então, entendo (no pouco que sei em relação aos nobres professores), que algum SET INCLUDE ou qualquer coisa está precisando ser corrigido nalguns dos arquivos originais da HMG que não foram alterados ou por falha de quem criou o instalador, ou porque não pode realmente mudar a pasta de instalação do que se é oferecido, apesar de não concordar com esta última informação, pois se não pode alterar, essa opção não deveria ser oferecida.
Não sei informar qual, mas, vou chutar aqui o BUILD.BAT ou COMPILE.BAT ou qualquer outro arquivo de configuração da HMG que não mudou o local de instalação...
Como reconheço que sou um eterno aprendiz e não sei nada de harbour ainda... é apenas um "chute" na trave que pode ou não entrar pro gol!
Enfim, coloquei o caminho certo, e a mensagem de erro acima - deste aplicativo que estava parado/pausado no laboratório - não mais aconteceu.
A mensagem de erro agora, foi nas chamadas às funções da linguagem C, nas tags PRAGMA BEGINDUMP onde uma função por nome HB_GETIMAGESIZE não foi reconhecida.
Vou tirá-la só pra compilar novamente, mas, não sei o porquê dela não funcionar, se está dentro das tags e é uma função da linguagem C, e se antes compilava. Vejam-na:

Código: Selecionar todos

/*
 * Syntax: hb_GetImageSize( cPicFile )
 * Parameter: cPicFile = graphic file (JPG, GIF, PNG)
 * Return: 2 dim array -> array[1] = width, array[2] = height
 */
/*
 HB_FUNC( HB_GETIMAGESIZE )
{
   int x = 0, y = 0;

   GetImageSize( hb_parcx( 1 ), &x, &y );

   hb_reta( 2 );
   HB_STORNI( x, -1, 1 );
   HB_STORNI( y, -1, 2 );
}
*/
Comentei-a só para compilar temporariamente, mas, preciso dela, ou acho que preciso...
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por Toledo »

microvolution escreveu: que algum SET INCLUDE ou qualquer coisa está precisando ser corrigido nalguns dos arquivos originais da HMG que não foram alterados ou por falha de quem criou o instalador
Amigo, na HMG todos os arquivos CH (do Harbour) tem que estar na pasta \hmg.3.4.2\HARBOUR\INCLUDE, então se for usar algum CH que está na pasta \CONTRIB, você tem que copiar para esta pasta.
microvolution escreveu:A mensagem de erro agora, foi nas chamadas às funções da linguagem C, nas tags PRAGMA BEGINDUMP onde uma função por nome HB_GETIMAGESIZE não foi reconhecida.
É bom Verificar se a função foi criada corretamente, pois se na compilação apresentou um erro que a função na foi reconhecida, algum problema tem na criação da função.

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
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por microvolution »

Toledo escreveu:É bom Verificar se a função foi criada corretamente, pois se na compilação apresentou um erro que a função na foi reconhecida, algum problema tem na criação da função.
xiiiiiiiiiiiiii piorou ainda mais... se de harbour pouco entendo, de C, nada.
Não tenho nem ideia... aliás tenho sim... segundo a linha 4907... o erro informa que tem um problema aqui:

Código: Selecionar todos

   GetImageSize( hb_parcx( 1 ), &x, &y );
Agora se é na função de fora GETIMAGESIZE ou na função interna HB_PARCX ou se é nos parâmetros com MACRO substituição... piorou muito mais
Como diz o pessoal do chaves/chapolin:
"Oh! e agora quem poderá me defender?"
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por Toledo »

Amigo, tudo indica que neste seu código em C está faltando o código da função GetImageSize(). Então verifique na sua fonte onde está o código desta função e incluir junto com o seu código C.

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
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por microvolution »

Nota:
Só pra constar:
essas funções em C, peguei do professor Pablo no link (há muito tempo atrás): https://pctoledo.org/forum/viewto ... =4&t=13627
Vejam o restante do código que está sendo chamado pela linha 4907, para alguém tentar me ajudar, por favor:

Código: Selecionar todos

/*
 * Function GetImageSize()
 * Author: Andi Jahja <harbour@cbn.net.id>
 */
BOOL GetImageSize( const char * fn, int * x, int * y )
{
   unsigned char buf[ 24 ];
   long          len;
   FILE * f = hb_fopen( fn, "rb" );
   if( ! f )
      return FALSE;
   fseek( f, 0, SEEK_END );
   len = ftell( f );
   fseek( f, 0, SEEK_SET );
   if( len < 24 )
   {
      fclose( f );
      return FALSE;
   }
   // Strategy:
   // reading GIF dimensions requires the first 10 bytes of the file
   // reading PNG dimensions requires the first 24 bytes of the file
   // reading JPEG dimensions requires scanning through jpeg chunks
   // In all formats, the file is at least 24 bytes big, so we'll read
   // that always
   fread( buf, 1, 24, f );
   // For JPEGs, we need to read the first 12 bytes of each chunk.
   // We'll read those 12 bytes at buf+2...buf+14, i.e. overwriting
   // the existing buf.
   if( buf[ 0 ] == 0xFF && buf[ 1 ] == 0xD8 && buf[ 2 ] == 0xFF && buf[ 3 ] == 0xE0 &&
       buf[ 6 ] == 'J' && buf[ 7 ] == 'F' && buf[ 8 ] == 'I' && buf[ 9 ] == 'F' )
   {
      long pos = 2;
      while( buf[ 2 ] == 0xFF )
      {
         if( buf[ 3 ] == 0xC0 || buf[ 3 ] == 0xC1 || buf[ 3 ] == 0xC2 ||
             buf[ 3 ] == 0xC3 || buf[ 3 ] == 0xC9 || buf[ 3 ] == 0xCA ||
             buf[ 3 ] == 0xCB )
            break;
         pos += 2 + ( buf[ 4 ] << 8 ) + buf[ 5 ];
         if( pos + 12 > len )
            break;
         fseek( f, pos, SEEK_SET );
         fread( buf + 2, 1, 12, f );
      }
   }
   fclose( f );
   // JPEG: (first two bytes of buf are first two bytes of the jpeg
   // file; rest of buf is the DCT frame
   if( buf[ 0 ] == 0xFF && buf[ 1 ] == 0xD8 && buf[ 2 ] == 0xFF )
   {
      *y = ( buf[ 7 ] << 8 ) + buf[ 8 ];
      *x = ( buf[ 9 ] << 8 ) + buf[ 10 ];
      return TRUE;
   }
   // GIF: first three bytes say "GIF", next three give version
   // number. Then dimensions
   if( buf[ 0 ] == 'G' && buf[ 1 ] == 'I' && buf[ 2 ] == 'F' )
   {
      *x = buf[ 6 ] + ( buf[ 7 ] << 8 );
      *y = buf[ 8 ] + ( buf[ 9 ] << 8 );
      return TRUE;
   }
   // PNG: the first frame is by definition an IHDR frame, which gives
   // dimensions
   if( buf[ 0 ] == 0x89 && buf[ 1 ] == 'P' && buf[ 2 ] == 'N' && buf[ 3 ] == 'G' &&
       buf[ 4 ] == 0x0D && buf[ 5 ] == 0x0A && buf[ 6 ] == 0x1A && buf[ 7 ] == 0x0A
       && buf[ 12 ] == 'I' && buf[ 13 ] == 'H' && buf[ 14 ] == 'D' &&
       buf[ 15 ] == 'R' )
   {
      *x = ( buf[ 16 ] << 24 ) + ( buf[ 17 ] << 16 ) + ( buf[ 18 ] << 8 ) + ( buf[ 19 ] << 0 );
      *y = ( buf[ 20 ] << 24 ) + ( buf[ 21 ] << 16 ) + ( buf[ 22 ] << 8 ) + ( buf[ 23 ] << 0 );
      return TRUE;
   }
   return FALSE;
}
Isso tudo está dentro da tab PRAGMA!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por microvolution »

Nota:
a única diferença é que no original que peguei da postagem do Pablo no link já informado, é que a posição de ambas está ao contrário...
no chutômetro, vou colocar a função maior por cima e a menor HB_GETSIZE abaixo da maior.
Vai que é isso, e fico tomando o tempo de V.Sas. desnecessariamente!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por Claudio Soto »

En HMG existe:

HMG_GetImageInfo ( [ cFileName | hBitmap ], @nWidth, @nHeight, @aBackColor, [ nRowColor ], [ nColColor ] ) --> return lBoolean
 
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por microvolution »

microvolution escreveu:Vai que é isso, e fico tomando o tempo de V.Sas. desnecessariamente!
e não é que é isso mesmo...
dizem que:
- a ordem dos fatores não alteram o produto!
- a ordem dos tratores não alteram a construção!
quem me explica isso!
Apesar que não compilou também, mas, não deu mais a mensagem de erro.
No arquivo:
- BUILDlog, ficou apenas assim:

Código: Selecionar todos

Harbour 3.2.0dev (r1509031202)
Copyright (c) 1999-2015, http://harbour-project.org/
E o error.log não foi criado!
Bom, vou experimentar do professor Claudio Soto:
Claudio Soto escreveu:En HMG existe:
agora mesmo... aguardem meu retorno, por favor!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Iniciando testes com HMG 3.4.2

Mensagem por Claudio Soto »

El lenguaje C no es matematica, la orden de los factores altera el producto!!!
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Responder