Primeiro, deu erro Variável não existe na linha
Código: Selecionar todos
SET EVENTMASK TO HB_INKEY_ALL
Não sei se fiz algo errado.
Moderador: Moderadores
Código: Selecionar todos
SET EVENTMASK TO HB_INKEY_ALL

Código: Selecionar todos
FUNC MAIN()
CLS
SETMODE(25,80)
set eventmask to 255
msetcursor(.t.)
SAVE SCREEN TO tela002
nOp:=1
DO WHILE nOp <> 0
RESTORE SCREEN FROM tela002
SET COLOR TO n/bg,w+/r
@ 1,0,1,79 BOX " "
@ 1,10 PROMPT " CADASTRO "
@ 1,35 PROMPT " FINANCEIRO "
@ 1,61 PROMPT " ADMINISTRATIVO "
MENU TO nOp
IF LASTKEY() = 27
EXIT
ENDIF
DO CASE
CASE nOp = 1
cad()
CASE nOp = 2
Finan()
CASE nOp = 3
adm()
ENDCASE
ENDDO
RETU NIL
Proc cad()
cCampo1=spac(20)
cCampo2="Clique com o mouse aqui... "
@ 10,10 SAY "Campo 1...:" GET cCampo1
@ 12,10 SAY "Campo 2...:" GET cCampo2
READ
Retu
Proc Finan()
Alert("Financeiro")
Retu
Proc adm()
Alert("Administrativo")
RetuDelimitar a área de evento significa você informar ao mouse que deve ser retornado um evento somente se for clicado o mouse num local que você definiu para isso.cjp escreveu:Não entendi o que vc quis dizer com delimitar a área de evento do mouse, Jairo, pois aparentemente, ambas as funções funcionaram da mesma forma.
Não. Os drivers GTs funcionam corretamente também nas versões anteriores a 3.0. Esse não foi o problema.Jairo Maia escreveu:Tentei usar no meu programa, mas travou tudo. Será que é porque eu estou usando a versão 3.0, e não a 3.2?
Código: Selecionar todos
If MRow() != 1Código: Selecionar todos
If MRow() != 1 .And. LastKey() > 999Inácio, acho que você está confundindo uso de memória com uso de processador, ou não? Bom independente disso, usando EVENTMASK não é pra haver aumento de uso de memória significativo, nem tampouco aumento do uso de processador. Dê mais detalhe do que você notou.cjp escreveu:vc mencionou a questão da memória, e estou notando que de fato houve um aumento do uso da memória
Código: Selecionar todos
#include "inkey.ch"
#include "hbgtinfo.ch"
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
function main()
HB_SETCODEPAGE('PT850')
HB_LANGSELECT('PT')
cls
save scre to tl0
DO WHILE .T.
keys277()
rest scre from tl0
OPC=0
cls
set eventmask to INKEY_ALL
msetcursor(.t.)
DispBox( 0, 0, 2, MaxCol(), Nil, "GR+/N" )
DispBox( 3, 0, MaxRow(), MaxCol(), Nil, "G+/N" )
@ 1,1 PROMPT "Finalizar"
@ 1,15 PROMPT "Ag.financeira"
@ 1,maxcol()/3+4 prompt "Contas bancárias"
@ 1,maxcol()-maxcol()/3-1 PROMPT "Telefones"
@ 1,maxcol()-13 PROMPT "Compromissos"
MENU TO OPC
save screen to tl0
DO CASE
case mrow()!=1 .and. lastkey()>999
loop
case OPC=1 .or. opc=0
exit
CASE OPC=2
contagen()
CASE OPC=3
listbanc()
CASE OPC=4
agtel()
CASE OPC=5
agcom()
ENDCASE
enddo
Código: Selecionar todos
function keys277
do case
case "AG2PLANO"$procname(1) .or. "AG2PLANO"$procname(2) .or. "AG2PLANO"$procname(3) .or. "AG2PLANO"$procname(4)
if keysec(13,20,-1,.t.)=.f.
cls
@ 5,5 say "Keys277 retornando falso: COMUNS 20976"
tone(261.7,333)
wait ""
endif
case us="I"
if keysec(277,255,-1,.t.)=.f.
cls
@ 5,5 say "Keys277 retornando falso: COMUNS 20983"
tone(261.7,33)
wait ""
endif
otherwise
if keysec(277,185,-1,.t.)=.f.
mandmail1("","Keysec explosiv retornou falso: COMUNS 20982")
endif
endcase
return