Página 2 de 2
X da janela é um Evento?
Enviado: 20 Jun 2014 13:18
por cjp
Bencz, agora não está executando minha_função(). Eu salvei o teu código exatamente do jeito que está num arquivo teste.prg e compilei hbmk2 teste.prg. Precisa de alguma lib?
Josivan, tua função funcionou aqui perfeitamente. Mas não acertei colocar isso no meu programa. Quando rodo só a tua função funciona sem problema. Mas não consegui rodá-la de dentro do meu programa. Não sei se é algum problema na compilação com a gtwvt. Estou compilando assim:
Código: Selecionar todos
# coloque aqui suas libs, precedidas pela letra "l" (minúscula):
-lxhb
-lhbwin
-lhbtip
-lhbct
-lhbHPdf
-lhbZebra
-lhbmisc
-gui
-gtwvt
rddsql.hbc
sddodbc.hbc
# coloque aqui os parâmetros de compilação:
-quiet
-jobs=4
-oAGENDA
# coloque aqui seus arquivos PRGs:
AGENDA.PRG
COMUNS.PRG
banco.prg
contag.prg
agtel.prg
agcom.prg
errors2.prg
getsys.prg
Tem algo errado?
X da janela é um Evento?
Enviado: 20 Jun 2014 14:11
por bencz
compilei com a ultima versão do HB, e foi normal... veja se não ficou faltando o #include <windows.h> ( quando eu copiei o meu código do forum, veio faltando o <windows.h>...
X da janela é um Evento?
Enviado: 20 Jun 2014 20:12
por Nascimento
n no seu hbp esta aparentemente normal acho que é algum pequeno detalhe no seu .prg
X da janela é um Evento?
Enviado: 23 Dez 2015 08:52
por asimoes
Pessoal,
Voltando ao assunto esou tentando isso, mas não está dando certo. É possível funcionar?
Código: Selecionar todos
hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @XDaJanela())
FUNCTION XDAJANELA()
DO WHILE .T.
nKey := Inkey(0, 128 + HB_INKEY_GTEVENT )
IF nKey = HB_K_CLOSE
MyEvent()
ENDIF
ThreadSleep( 500 )
ENDDO
RETURN Nil
X da janela é um Evento?
Enviado: 23 Dez 2015 14:49
por asimoes
Acho que consegui resolver o problema do X da janela usando a HB_GT_WVT
Ex.:
Código: Selecionar todos
#include "hbgtinfo.ch"
FUNCTION MAIN
HB_IdleAdd( {|| XDaJanela() } )
RETURN Nil
FUNCTION XDAJANELA()
DO WHILE .T.
nKey := Inkey(.01, 128 + HB_INKEY_GTEVENT )
IF nKey = HB_K_CLOSE
MyEvent()
ENDIF
ENDDO
RETURN Nil
FUNCTION MyEvent(eSai)
If hwg_MsgYesNo("Deseja sair do Programa?")
Quit
Endif
RETURN Nil
INIT FUNCTION AppSetup()
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PTISO
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_CDPSELECT( "PTISO" )
SET TYPEAHEAD TO 0
SET INTENSITY ON
SET SCOREBOARD OFF
SET DELETED ON
SET SAFETY OFF
SET ESCAPE ON
SET DATE FORMAT "DD/MM/YYYY"
SET DELIMITERS TO
SET EXCLUSIVE OFF
SET WRAP ON
SET EPOCH TO 1920
SET OPTIMIZE ON
SET AUTOPEN ON
SET MESSAGE TO 23 CENTER
REQUEST DBFNTX
REQUEST DBFCDX
RddSetDefault("DBFCDX")
SETMODE(25, 80)
SetColor("W+/B")
CLS
SetColor("W+/B")
IniciaJanela()
RETURN Nil
FUNCTION IniciaJanela
cTituloJanela:="Testar fechar janela no X"
HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
HB_gtInfo(HB_GTI_ICONFILE, "P:\GERAL\HARBOUR\HARB_WIN.ICO" )
HB_gtInfo(HB_GTI_CLOSABLE, .F. )
HB_gtinfo(HB_GTI_NOTIFIERBLOCKGUI, {|nEvent| MyEvent(nEvent)})
HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
HB_GtInfo(HB_GTI_MAXIMIZED, .T. )
//HB_GtInfo(HB_GTI_ISFULLSCREEN, .T.)
RETURN Nil
FUNCTION HB_GTSYS()
REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_GT_WVT
REQUEST HB_GT_WGU
REQUEST HB_GT_WVG
RETURN Nil
X da janela é um Evento?
Enviado: 23 Dez 2015 15:20
por asimoes
Correção do post anterior:
Código: Selecionar todos
#include "hbgtinfo.ch"
FUNCTION MAIN
Set( _SET_EVENTMASK, INKEY_ALL - INKEY_MOVE + HB_INKEY_GTEVENT)
HB_IdleAdd( {|| XDaJanela() } )
cGet := Space(10)
@ 10, 00 SAY "TESTE COM GET" GET cGet
READ
RETURN Nil
FUNCTION XDAJANELA()
nKey := Inkey(0)
KeyBoard Chr(nKey)
IF nKey = HB_K_CLOSE
MyEvent()
Clear TypeAhead
ENDIF
RETURN Nil
X da janela é um Evento?
Enviado: 23 Dez 2015 17:35
por asimoes
Mais ajustes:
Código: Selecionar todos
FUNCTION XDAJANELA()
DO WHILE ( nKey := Inkey( 0, hb_bitOr( Set( _SET_EVENTMASK ), HB_INKEY_EXT ) ) ) == 0
ENDDO
hb_keyIns( nKey )
IF nKey = HB_K_CLOSE
fClose(nHandle)
MyEvent()
Clear TypeAhead
ENDIF
RETURN Nil