SET TIMER na HwGui 2.19 não funciona

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

SET TIMER na HwGui 2.19 não funciona

Mensagem por sygecom »

Itamar,
Estou o dia todo brigando com Harbour(SVN NOITE) + Hwgui SVN e, não estou conseguindo mandar mensagem para o grupo de desenvolvedores.

O SET TIMER na versão atual da Hwgui não está funcionando, da o erro abaixo:

Código: Selecionar todos

SET TIMER não está funcionando na versão da Hwgui atual, em anexo o exemplo e abaixo o erro.

Error HCUSTOMWINDOW/0  Invalid class member
Called from source\winapi\hcwindow.prg->HDIALOG:OTIME_MSG(225)
Called from syg_uteis.prg->(b)MY_MSGINFO(179)
Called from ext_controls\hctrlex.prg->HBUTTONEX:ONCLICK(401)
Called from ext_controls\hctrlex.prg->(b)HBUTTONX_NEW(312)
Called from source\winapi\hdialog.prg->ONDLGCOMMAND(335)
Called from source\winapi\hdialog.prg->(b)(_INITSTATICS00003)(0)
Called from source\winapi\hdialog.prg->HDIALOG:ONEVENT(182)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from source\winapi\hdialog.prg->HDIALOG:ACTIVATE(135)
Called from syg_uteis.prg->MY_MSGINFO(183)
Called from syg_uteis.prg->MAIN(28)
A compilação da Hwgui do SVN com o Harbour mais atual também da erro no Activex, erro abaixo.

Código: Selecionar todos

hbmk2: Harbour: Compilando módulos...
hbmk2: Compilando...
../../../../contrib/activex/c_activex.c: In function 'HB_FUN_HWG_CREATEACTIVEX':

../../../../contrib/activex/c_activex.c:85:40: warning: signed and unsigned type
 in conditional expression [-Wsign-compare]
../../../../contrib/activex/c_activex.c:86:40: warning: signed and unsigned type
 in conditional expression [-Wsign-compare]
In file included from ../../../../contrib/activex/htmlcore.c:40:0:
../../../../contrib/activex/htmlcore.h:17:119: fatal error: mshtmhst.h: No such
file or directory
compilation terminated.
In file included from ../../../../contrib/activex/htmlfunc.c:16:0:
../../../../contrib/activex/htmlcore.h:17:119: fatal error: mshtmhst.h: No such
file or directory
compilation terminated.
hbmk2[hbactivex]: Erro: Executando compilador C/C++. 1
gcc.exe -c -O3 -march=i586 -mtune=pentiumpro -fomit-frame-pointer  -DHWG_USE_POI
NTER_ITEM -W -Wall -pipe -Id:/devel/harbour/include -I../../../../include ../../
../../lib/.hbmk/win/mingw/hhtml.c ../../../../lib/.hbmk/win/mingw/h_activex.c ..
/../../../contrib/activex/c_activex.c ../../../../contrib/activex/htmlcore.c ../
../../../contrib/activex/htmlfunc.c
Sabe como resolver esses erros, ou reportar isso na lista de desenvolvedores da Hwgui ?
Editado pela última vez por Toledo em 18 Fev 2015 08:22, em um total de 2 vezes.
Razão: Este tópico foi dividido de um outro tópico que tratava de um outro assunto
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Harbour Android + Hwgui

Mensagem por Itamar M. Lins Jr. »

Ola!
O SET TIMER na versão atual da Hwgui não está funcionando, da o erro abaixo:
cadê a sintaxe de como está usando ?

Aqui compila sem problema nenhum, nem avisos aparecem.

Está usando o hbmk2 ? é MingW ou BCC ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Harbour Android + Hwgui

Mensagem por sygecom »

Em anexo o exemplo de teste.

Estou sim usando hbmk2, e estou usando Mingw que vem junto com a versão do Harbour SVN(noite)
Anexos
teste2.prg
exemplo com set timer
(1.41 KiB) Baixado 298 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Harbour Android + Hwgui

Mensagem por Itamar M. Lins Jr. »

Realmente está com esse problema.
Eu não uso dessa forma.
Vou mandar seu exemplo p/ o Alexander.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Harbour Android + Hwgui

Mensagem por sygecom »

No Harbour tem algo que faça parecido com esse SET TIMER para rodar a cada NNN segundos tal FUNCTION
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Harbour Android + Hwgui

Mensagem por Itamar M. Lins Jr. »

O problema não é no set timer da Hwgui.
O problema é que vc está usando STATIC e depois usa ThisForm:= oDlg, acredito que não está atribuindo corretamente a herança dos objetos.
Eu uso "set timer" da mesma forma que vc usa (sintaxe) só que uso uma variável PRIVATE.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Harbour Android + Hwgui

Mensagem por sygecom »

Entendi,
O problema que não posso usar PRIVATE mesmo por que uso as flag abaixo. Para evitar erros de programação.

#pragma /w2
#pragma /es2
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Harbour Android + Hwgui

Mensagem por sygecom »

Outra coisa, a FUNCTION abaixo não funciona mais na HWGUI do SVN
SetDisableBackColor(.T.) // USA OS CAMPOS DESABILITADOS COM FUNDO BRANCO
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Harbour Android + Hwgui

Mensagem por Itamar M. Lins Jr. »

Ola!
Seu problema é com a herança mesmo.
Assim funciona:

Código: Selecionar todos

oTime_MSG:end()
, e assim não funciona:

Código: Selecionar todos

ThisForm:oTime_MSG:end()
Agora para ativar é preciso colocar no final do Dialog.

Código: Selecionar todos

ACTIVATE DIALOG oDlg On Activate {||fAtivarTimer(oDlg,cTempo)}

Código: Selecionar todos

ACTIVATE DIALOG oDlg On Activate {||fAtivarTimer(oDlg,cTempo)}

Return(.t.)

Function fAtivarTimer(oDlg,cTempo)
LOCAL oTime_MSG
SET TIMER oTime_MSG OF oDlg ID 9007 VALUE 1000 ACTION {|| ATUALIZA_TIMER(oDlg,oTime_MSG,cTempo) }
return .t.

*****************************************************
STATIC FUNCTION ATUALIZA_TIMER(oDlg,oTime_MSG,cTempo)
*****************************************************
nTempo++
IF nTempo=cTempo
   oTime_MSG:end()
   oDlg:Close()
ENDIF
//HWG_DOEVENTS()
oDlg:oButton1:SETTEXT("&OK-"+alltrim(str(cTempo-nTempo)) )
oDlg:oButton1:REFRESH()
RETURN(.T.)
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Harbour Android + Hwgui

Mensagem por sygecom »

Entendi, estou tentando migrar para SVN e Harbour, mas acho melhor aguardar as correções para seguir nos testes. Mesmo assim obrigado pelo feedback.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Harbour Android + Hwgui

Mensagem por Itamar M. Lins Jr. »

Como havia dito!
HwGUI 2.19 doesn't support names for timers as for controls (
oDlg:oSay1 ... ).

In this sample you need to change calls of Thisform:oTime_MSG:

@ 150,40 BUTTONEX oButton1 Caption "&OK" ON CLICK {||(oTime_MSG:end()), ...

SET TIMER oTIME_MSG OF oDlg ID 9007 VALUE 1000 ACTION {||
ATUALIZA_TIMER(cTempo,oTime_MSG) }

...


STATIC FUNCTION ATUALIZA_TIMER(cTempo,oTimer)

nTempo++
IF nTempo=cTempo
oTimer:end()
...


This will work in both 2.17 and 2.19.


Regards, Alexander.
O erro é ai no seu CPU, porque no nosso funciona.
Leonardo Machado writes:
> Hi,
> Error compiling activex with HARBOUR SVN (night version) and HWGUI SVN
> ...
> In file included from ../../../../contrib/activex/htmlcore.c:40:0:
> ../../../../contrib/activex/htmlcore.h:17:119: fatal error: mshtmhst.h:
> No such
> file or directory
> compilation terminated.

It says that the header file mshtmhst.h is absent.
What Mingw version you use ? Check, if this file presents there. If no,
maybe, you can copy it from other Mingw distribution. It is on the palce
in my Mingw 4.8.2

Regards, Alexander.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Harbour Android + Hwgui

Mensagem por sygecom »

Sobre o SET TIMER, antes funcionava, ou seja esse recurso foi tirado da Hwgui, mas tudo bem, vou continuar a usar a versão 2.17 e continuar fazendo minhas melhorias.
Problema que a versão 2.17 não é compatível com o Harbour atual, da uma serie de erros. Então vou seguir com xharbour mesmo nas versão mais atual.

Sobre o erro da Activex, estou usando o MINGW que vem junto com a versão do Harbour(noite), então quem fez o pacote do Harbour fez ele incompleto.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Harbour Android + Hwgui

Mensagem por Itamar M. Lins Jr. »

...o Harbour fez ele incompleto.
É a versão do Mingw que é velha, o pessoal já está vendo atualizar p/ 4.9.2.
antes funcionava, ou seja esse recurso foi tirado da Hwgui,
Lembre-se que existem outras pessoas usando a Hwgui no Linux via GTK.

Eu penso ser uma escolha equivocada da sua parte, basta apenas fazer pequenas modificações ai no seu código. Está se isolando no seu código.


Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Harbour Android + Hwgui

Mensagem por sygecom »

E também tenho uma versão GTK, desatualizada, o básico funciona.

Versão 2.17 herdava TIMER, vou aguardar as resoluções desse problema para poder evoluir nos testes, não posso sair mudando tudo que tenho, exigiria varias alterações em vários projetos e sem contar a porrada de testes que teria que fazer.

Nota: TIMER nunca existiu na HWGUI GTK, então certamente não é esse o motivo de desfazer uma funcionalidade da HWGUI,
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Harbour Android + Hwgui

Mensagem por Itamar M. Lins Jr. »

Se vc souber como resolver isso mande um "patch" ou peça acesso de escrita no SVN.
Duvido que ele, negue. Ela já tinha até oferecido p/ nós aqui, só que na época eu não achei necessário até agora.. vez outra mando simples correções e ele faz o commit no SVN.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder