harbour - modo console / mouse / get
Enviado: 18 Mar 2012 21:56
Ola pessoal, agora que estou testando o harbour nigthy 3.1 e como meus sistemas nunca tiveram uso do mouse estou tentando fazer algumas coisas e nao estou conseguindo.
ja descobri que: lastkey()=1002 é quando clica o mouse botao esquerdo
ja descobri que: lastkey()=1001 é quando o mouse esta em movimento
ja descobri que: lastkey()=1006 é quando clica 2 vezes botao esquerdo
ja descobri que: mcol() devolve a posicao do mouse (linha)
ja descobri que: mrow() devolve a posicao do mouse (coluna)
alguem sabe dizer se existe alguma funcao que eu passe as coordenadas da tela (modo texto), e se for clicado
nestas coordenadas o sistema execute uma funcao especifica ou um comando ?
procurei e nao achei nada, tentei montar uma rotina, mas o GET nao responde ao mouse, permanecendo no READ ate pressionar ENTER, a idéia é simples abro um box sobre a tela do sistema e se o cliente nao quiser digitar nada
ele fecha no X da janela ao inves de usar o teclado e pressionar ESC.
segue um exemplo
ABEL
ja descobri que: lastkey()=1002 é quando clica o mouse botao esquerdo
ja descobri que: lastkey()=1001 é quando o mouse esta em movimento
ja descobri que: lastkey()=1006 é quando clica 2 vezes botao esquerdo
ja descobri que: mcol() devolve a posicao do mouse (linha)
ja descobri que: mrow() devolve a posicao do mouse (coluna)
alguem sabe dizer se existe alguma funcao que eu passe as coordenadas da tela (modo texto), e se for clicado
nestas coordenadas o sistema execute uma funcao especifica ou um comando ?
procurei e nao achei nada, tentei montar uma rotina, mas o GET nao responde ao mouse, permanecendo no READ ate pressionar ENTER, a idéia é simples abro um box sobre a tela do sistema e se o cliente nao quiser digitar nada
ele fecha no X da janela ao inves de usar o teclado e pressionar ESC.
segue um exemplo
Código: Selecionar todos
#include "inkey.ch"
FUNCTION MAIN()
// Ativa as ações do mouse
SET( _SET_EVENTMASK, 255 )
// Ativa cores intensas no fundo
SetBlink(.f.)
// Torna o cursor do mouse visivel
mSetCursor(.T.)
//
CLEAR
rA_CONTEUDO=SPAC(15)
rA_GET=TELA_GET(rA_CONTEUDO)
//
RETURN
PROCEDURE TELA_GET(rA_CONTEUDO)
save screen to rT_TELGET
rA_CONTEUDO2=rA_CONTEUDO
//
DO WHILE .T.
@ 1,1 SAY 'Ú--------------------[x]¿'
@ 2,1 SAY '│ │'
@ 3,1 SAY '│Nome: │'
@ 4,1 SAY 'À-----------------------Ù'
//
@ 3,8 GET rA_CONTEUDO2 PICT '@!' VALID FUNCAO()
READ
IF LASTKEY()=1002 .OR. LASTKEY()=27 // BOTAO ESQUERDO DO MOUSE
EXIT
ENDIF
ENDDO
restore screen from rT_TELGET
RETURN rA_CONTEUDO2
PROCEDURE FUNCAO()
IF MROW()=1 .AND. MCOL()=23
KEYBOARD CHR(27)
ENDIF
RETURN .T.