Clipper On Line • Ver Tópico - Duplo clique não funciona

Duplo clique não funciona

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Duplo clique não funciona

Mensagempor ssflavio » 08 Mai 2019 18:07

Boa tarde pessoal!
estou com um probleminha chato, não consigo identificar um duplo clique.
utilizo inkey(0) para capturar teclas e mouse
nunca vem duplo clique, apenas o clique, tanto esquerdo como direito
utilizo a biblioteca gtwvt, mas em modo console (para liberar o mouse)

uma coisa interessante é que os menus funcionam com o duplo clique esquerdo

abraços a todos
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 86
Data de registro: 10 Jul 2008 09:57
Cidade/Estado: São Paulo / SP
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Duplo clique não funciona

Mensagempor ssflavio » 09 Mai 2019 17:10

24 horas se passaram e nehuma ajudinha???? :%
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 86
Data de registro: 10 Jul 2008 09:57
Cidade/Estado: São Paulo / SP
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Duplo clique não funciona

Mensagempor Kapiaba » 09 Mai 2019 17:54

Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Duplo clique não funciona

Mensagempor Itamar M. Lins Jr. » 09 Mai 2019 17:55

Ola!
Acredito que a maioria use alguma GUI.
Eu mesmo não sei.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Duplo clique não funciona

Mensagempor ssflavio » 10 Mai 2019 10:22

Muito obrigado pela ajuda!
eu ja tinha lido este post, mas testado dentro do meu programa e não tinha funcionado
agora fiz um programinha teste, só para testar isso e funcionou

desculpa a vacilada pessoal e MUITO OBRIGADO NOVAMENTE!!!
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 86
Data de registro: 10 Jul 2008 09:57
Cidade/Estado: São Paulo / SP
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Duplo clique não funciona

Mensagempor ssflavio » 10 Mai 2019 15:40

Não sei o que acontece.
Saí, quando voltei já não funcionava mais.
Não faz duplo clique apenas clique simples.
Vejam o código

#include "std.ch"
#include "inkey.ch"
#include "hblang.ch"

REQUEST HB_GT_WIN_DEFAULT
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
function main()
   setmode(25,80)
   HB_SETCODEPAGE("PT850")
   HB_LANGSELECT("PT")
   SET( _SET_EVENTMASK, INKEY_ALL)

   /* set date british
   set date format to "DD/MM/YYYY"
   set epoch to (year(date()) - 89)
   set century on
   set bell on
   set deleted on
   set scoreboard off
   set talk off
   set wrap on
   set cursor on */
   * setblink(.f.)
   //Set Eventmask to K_LBUTTONDOWN  //Evita tela tremendo ao usar o mouse
   //Set Eventmask to 1002  //Evita tela tremendo ao usar mouse
   
   clear
   
   @ 01,00 say "TESTE DO MOUSE - MOVIMENTO E CLIQUES"
   X := 0
   Y := 0
   K := 0
   TXT := " "
   do while K # K_ESC
      @ 05,00 say "posição X:"
      @ 06,00 say "posição y:"
      @ 07,00 say "clique:"
      K := inkey(0)

      X := mrow()
      Y := mcol()
      @ 05,11 say X
      @ 06,11 say Y
      @ 07,11 say K

      if K == K_MOUSEMOVE   && 1001
      elseif K == K_LBUTTONDOWN   && 1002
         @ 10,15 SAY "CLIQUE ESQUERDO DOWN" GET TXT
        READ
      elseif K == K_LBUTTONUP     && 1003
         @ 10,15 SAY "CLIQUE ESQUERDO UP" GET TXT
        READ
      elseif K == K_RBUTTONDOWN   && 1004
         @ 10,15 SAY "CLIQUE DIREITO DOWN" GET TXT
        READ
      elseif K == K_RBUTTONUP     && 1005
         @ 10,15 SAY "CLIQUE DIREITO UP" GET TXT
        READ
      elseif K == K_LDBLCLK       && 1006
         @ 10,15 SAY "DUPLOCLIQUE ESQUERDO" GET TXT
        READ
      elseif K == K_RDBLCLK       && 1007
         @ 10,15 SAY "DUPLOCLIQUE DIREITO" GET TXT
        READ
      elseif K == K_MBUTTONDOWN   && 1008  // Middle Button Down
         @ 10,15 SAY "CLIQUE CENTRO DOWN" GET TXT
        READ
      elseif K == K_MBUTTONUP     && 1009  // Middle Button Up
         @ 10,15 SAY "CLIQUE CENTRO UP" GET TXT
        READ
      elseif K == K_MDBLCLK       && 1010  // Middle Button Double Click
         @ 10,15 SAY "DUPLOCLIQUE CENTRO" GET TXT
        READ
      elseif K == K_MMLEFTDOWN    && 1011  // Mouse Move Left Down
         @ 10,15 SAY "Mouse Move Left Down" GET TXT
        READ
      elseif K == K_MMRIGHTDOWN   && 1012  // Mouse Move Right Down
         @ 10,15 SAY "Mouse Move Right Down" GET TXT
        READ
      elseif K == K_MMMIDDLEDOWN  && 1013  // Mouse Move Middle Down
         @ 10,15 SAY "Mouse Move Middle Down" GET TXT
        READ
      elseif K == K_MWFORWARD     && 1014  // Mouse Wheel Forward
         @ 10,15 SAY "RODINHA PARA FRENTE" GET TXT
        READ
      elseif K == K_MWBACKWARD    && 1015  // Mouse Wheel Backward
         @ 10,15 SAY "RODINHA PARA TRAS" GET TXT
        READ
      elseif K == K_NCMOUSEMOVE   && 1016  // Non-Client Area Mouse Movement
         @ 10,15 SAY "Non-Client Area Mouse Movement" GET TXT
        READ
      endif
      
      @ 10,00
   enddo

   set cursor on
   set color to
   clear screen

return(nil)
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 86
Data de registro: 10 Jul 2008 09:57
Cidade/Estado: São Paulo / SP
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Duplo clique não funciona

Mensagempor ssflavio » 11 Mai 2019 10:58

encontrei a função MDBLCLK(200)
esta função limitaria o clique duplo, mas não funcionou na identificação do clique duplo
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 86
Data de registro: 10 Jul 2008 09:57
Cidade/Estado: São Paulo / SP
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Duplo clique não funciona

Mensagempor Jairo Maia » 11 Mai 2019 13:57

ssflavio escreveu:encontrei a função MDBLCLK(200)
Se não estou enganado, essa função define o tempo entre os cliques do mouse.

Mas o que não estou enganado, é que para usar mouse nos GET´s, você tem adaptar seu arquivo GETSYS.PRG. Não tenho como compartilhar meu GetSys.Prg, ele é muito característico para meus sistemas. Mas tente encontrar algum adaptado para uso do mouse em Harbour.

Veja se isso ajuda: http://www.pctoledo.com.br/forum/viewtopic.php?p=115285#p115285
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Duplo clique não funciona

Mensagempor alxsts » 12 Mai 2019 00:46

Olá!

Jairo Maia escreveu:Mas o que não estou enganado, é que para usar mouse nos GET´s, você tem adaptar seu arquivo GETSYS.PRG.

Desde o Clipper 5.3 o GetSystem veio com tratamento de mouse automático e alguns tipos novos de "objetos" get ( como mostrado na imagem abaixo ), totalmente compatíveis com o uso de mouse. Na pasta Source\Sample do Clipper 5.3 vieram vários exemplos de uso. O Harbour e xHarbour, naturalmente, herdaram tudo isto com compatibilidade total.
Get53.JPG

Segue um fonte de programa que testa o mouse. Compile e teste. Talvez ajude a entender o problema que ocorre.
/*
* Copyright 2000 Alejandro de Garate <alex_degarate hotmail com>
*
* Test mouse for Harbour
*/

#include "inkey.ch"

PROCEDURE Main()

   LOCAL nR := 5, nC := 38

   SET CURSOR OFF
   SetMode(43, 130)
   CLS
   IF ! MPresent()
      ? " No mouse present !"
      QUIT
   ENDIF

   @ 0, 0 TO MaxRow(), MaxCol() DOUBLE
   @ MaxRow() - 2,  0 TO MaxRow(), 18 DOUBLE
   @ MaxRow() - 1,  2 SAY "Y:"
   @ MaxRow() - 1, 10 SAY "X:"

   @ nR,  2 SAY "Mouse Type    :"

   @ nR, 18 SAY "Mouse System"

   @ MaxRow() - 2, 68 TO MaxRow(), MaxCol() DOUBLE
   @ MaxRow() - 1, 70 SAY "Exit"

   @ 10,  2 SAY " -- Checkings --"
   @ 11,  2 SAY "Window Boundaries :"
   @ 12,  2 SAY "Press/Release But.:"
   @ 13,  2 SAY "Double Click Left :"
   @ 14,  2 SAY "Double Click Right:"

   TEST1()

   TEST2( nR, nC )

   SetPos( MaxRow(), 0 )

   SET CURSOR ON
   ?

   RETURN

STATIC FUNCTION MUPDATE()

   @ MaxRow() - 1,  4 SAY MRow() PICTURE "9999"
   @ MaxRow() - 1, 12 SAY MCol() PICTURE "9999"

   RETURN 0

STATIC FUNCTION MINRECT( nTop, nLeft, nBott, nRight )

   LOCAL lInside := .F.

   IF MRow() >= nTop .AND. MRow() <= nBott
      IF MCol() >= nLeft .AND. MCol() <= nRight
         lInside := .T.
      ENDIF
   ENDIF

   RETURN lInside

// First test: Check the boundaries of the main window

STATIC PROCEDURE TEST1()

   LOCAL nKey

   @ MaxRow() - 3, 25 SAY "Move the cursor until the UPPER side "
   MUPDATE()

   DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
      MUPDATE()
      IF nKey == K_MOUSEMOVE
         IF MRow() < 1
            EXIT
         ENDIF
         CHECKEXIT()
      ENDIF
   ENDDO

   @ MaxRow() - 3, 25 SAY "Move the cursor until the BOTTOM side  "

   DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
      MUPDATE()
      IF nKey == K_MOUSEMOVE
         IF MRow() > MaxRow() - 1
            EXIT
         ENDIF
         CHECKEXIT()
      ENDIF
   ENDDO

   @ MaxRow() - 3, 25 SAY "Move the cursor until the LEFT side  "

   DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
      MUPDATE()
      IF nKey == K_MOUSEMOVE
         IF MCol() < 1
            EXIT
         ENDIF
         CHECKEXIT()
      ENDIF
   ENDDO

   @ MaxRow() - 3, 25 SAY "Move the cursor until the RIGHT side "

   DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
      MUPDATE()
      IF nKey == K_MOUSEMOVE
         IF MCol() > MaxCol() - 1
            EXIT
         ENDIF
         CHECKEXIT()
      ENDIF
   ENDDO

   @ MaxRow() - 3, 20 SAY Space( 50 )
   @ 11, 22 SAY "Pass"

   RETURN

// Second test: check the button pressing

STATIC PROCEDURE TEST2( nR, nC )

   LOCAL cSkip := "", nKey, nPress := 0

   @ nR +  0, nC SAY "+---------|---------+"
   @ nR +  1, nC SAY "| +===+ +===+ +===+ |"
   @ nR +  2, nC SAY "| |   | |   | |   | |"
   @ nR +  3, nC SAY "| |   | |   | |   | |"
   @ nR +  4, nC SAY "| +===+ +===+ +===+ |"
   @ nR +  5, nC SAY "|                   |"
   @ nR +  6, nC SAY "|  Up    Up    Up   |"
   @ nR +  7, nC SAY "|                   |"
   @ nR +  8, nC SAY "|                   |"
   @ nR +  9, nC SAY "|           Harbour |"
   @ nR + 10, nC SAY "|            mouse  |"
   @ nR + 11, nC SAY "+-------------------+"

   Set( _SET_EVENTMASK, INKEY_ALL )

   IF ! Empty( cSkip )
      IF Upper( cSkip ) == "BREAK"
         SetCancel( .T. )
      ELSE
         SetCancel( .F. )
      ENDIF
   ENDIF

   MUPDATE()

   WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB

      DO CASE
      CASE nKey == K_MOUSEMOVE
         // mouse has been moved
         IF MINRECT( 19, 40, 22, 60 )
            MHide()
         ELSE
            MShow()
         ENDIF
         CHECKEXIT()
         MUPDATE()

      CASE nKey == K_LBUTTONDOWN
         // Left mouse button was pushed
         @ nR + 2, nC + 3 SAY "XXX"
         @ nR + 3, nC + 3 SAY "XXX"
         @ nR + 6, nC + 3 SAY "Down"
         nPress ++

      CASE nKey == K_LBUTTONUP
         // Left mouse button was released
         @ nR + 2, nC + 3 SAY "   "
         @ nR + 3, nC + 3 SAY "   "
         @ nR + 6, nC + 3 SAY "Up  "

      CASE nKey == K_MBUTTONDOWN
         // Middle mouse button was pushed
         @ nR + 2, nC + 10 SAY "XXX"
         @ nR + 3, nC + 10 SAY "XXX"
         @ nR + 6, nC + 10 SAY "Down"
         nPress ++

      CASE nKey == K_MBUTTONUP
         // Middle mouse button was released
         @ nR + 6, nC + 10 SAY "Up  "

      CASE nKey == K_RBUTTONDOWN
         // Right mouse button was pushed
         @ nR + 2, nC + 15 SAY "XXX"
         @ nR + 3, nC + 15 SAY "XXX"
         @ nR + 6, nC + 15 SAY "Down"
         nPress ++

      CASE nKey == K_RBUTTONUP
         // Right mouse button was released
         @ nR + 2, nC + 15 SAY "   "
         @ nR + 3, nC + 15 SAY "   "
         @ nR + 6, nC + 15 SAY "Up  "

      CASE nKey == K_LDBLCLK
         // "The left mouse button was double-clicked."
         @ 13, 22 SAY "Pass"

      CASE nKey == K_RDBLCLK
         // "The right mouse button was double-clicked."
         @ 14, 22 SAY "Pass"

      OTHERWISE
         @ MaxRow(), 20 SAY "A keyboard key was pressed: "
         @ MaxRow(), 48 SAY nKey
#ifdef __HARBOUR__
         @ MaxRow(), 58 SAY hb_keyChar( nKey )
#else
         @ MaxRow(), 58 SAY iif( nKey >= 32 .AND. nKey <= 255, Chr( nKey ), "" )
#endif
      ENDCASE

      IF nPress > 6
         EXIT
      ENDIF

   ENDDO

   @ MaxRow() - 3, 20 SAY Space( 50 )
   @ 12, 22 SAY "Pass"

   SET CURSOR ON

   @ 20, 1 SAY "MOUSE TEST FINISH!"
   ?

   RETURN

STATIC PROCEDURE CHECKEXIT()

   IF ! MINRECT( MaxRow() - 2, MaxCol() - 11, MaxRow(), MaxCol() )
      RETURN
   ENDIF
   SET CURSOR ON
   CLS
   ? "MOUSE TEST FINISH!"
   ?
   QUIT
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Duplo clique não funciona

Mensagempor Jairo Maia » 12 Mai 2019 08:32

Bom dia Alexandre,

alxsts escreveu: O Harbour e xHarbour, naturalmente, herdaram tudo isto com compatibilidade total.
Depende do que você chama de "compatibilidade total". O problema não é mouse em tela ou menus, isso conforme ele relatou funciona muito bem, basta setar Set( _SET_EVENTMASK, <nEvent> ), o problema está quando tem um GET aberto. Esse é o problema.

Usando o GetSys original quer seja do Clipper 5.3 ou [x]Harbour, o cursor caiu num Get ADEUS mouse.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Duplo clique não funciona

Mensagempor alxsts » 12 Mai 2019 15:30

Olá!

Boa tarde Jairo.

Desejo um feliz dia das mães a você e a todos do Fórum.
Jairo Maia escreveu:Usando o GetSys original quer seja do Clipper 5.3 ou [x]Harbour, o cursor caiu num Get ADEUS mouse.

Não sei de onde você tirou esta afirmação. Salve e compile o código abaixo com uma versão limpa do GetSys.Prg (pode ser qualquer Harbour ou xHarbour ou Clipper 5.3) e verás que funciona.
#include "inkey.ch"

// hbMk2 x

PROCEDURE Main
   LOCAL cLName, cFName, cAddr, GetList := {}
   LOCAL cGetClr := "W+/B,W+/R,N/BG,GR+/BG"

   SET EVENTMASK TO INKEY_ALL
   SET COLOR TO N/BG

   CLS

   DO WHILE LastKey() != K_ESC
      cFName := Space(20)
      cLName := Space(20)
      cAddr  := Space(50)

   @  8, 20 SAY 'Nome        :'GET cFName ;
      COLOR cGetClr

   @ 10, 20 SAY 'Sobrenome   :' GET cLName  ;
      COLOR cGetClr   

   @ 12, 20 SAY 'Endereço    :' GET cAddr  ;
      COLOR cGetClr   

      READ
   ENDDO
RETURN
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Duplo clique não funciona

Mensagempor Jairo Maia » 12 Mai 2019 18:21

alxsts escreveu:Desejo um feliz dia das mães a você e a todos do Fórum.
Idem.

Alexandre, compile seu exemplo e proceda da seguinte forma:

1-Pressione ENTER 3 vezes. Veja que sai do GET e faz o loop, voltando ao primeiro GET;
2-Pressione ESC e veja que sai do READ;

4-Abra o exemplo novamente;
3-Depois pressione novamente qualquer botão (esquerdo ou direito) fora do GET. Veja que nada acontece.

Para ficar claro que não sai do Read com mouse, coloque um Hb_Alert( "qualquer coisa" ) depois do Read. Se não alterar o GetSys.Prg para entender qual tecla do mouse foi clicada, e qual ação tomar, mesmo usando INKEY_ALL, somente o teclado sairá do Read. Caiu em GET, tem que alterar o GetSys.Prg para definir as ações do mouse.

É o caso colocado pelo autor do tópico, depois que entra num GET, pode pressionar o botão direito ou esquerdo onde quiser e quantas vezes quiser na tela, não sai do GET. Tem que tratar isso no GetSys.Prg.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Duplo clique não funciona

Mensagempor alxsts » 12 Mai 2019 21:14

Olá!

Ah... isso era a tendência da época em que foi lançado o Clipper 5.3. Colocaram a funcionalidade do mouse no get system e criaram os tipos de gets mostrados na figura acima. Acho que foi uma preparação para o CA Visual Objects que, como sabemos não deu certo. Mas é possível trabalhar com todos os tipos de get integrados, usando o mouse em tudo.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Duplo clique não funciona

Mensagempor ssflavio » 13 Mai 2019 09:04

Bom dia meninos!
O problema neste momento não está nos gets e sim no INKEY(0), que não reconhece o duplo clique.
vou compilar o programa postado aqui pelo ALXSTS para fazer um teste se o clique duplo funciona.
agradeço muito a ajuda dos colegas para tentar sanar esse meu problema!
um abraço a todos e
tenham um bom dia!
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 86
Data de registro: 10 Jul 2008 09:57
Cidade/Estado: São Paulo / SP
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Duplo clique não funciona

Mensagempor Jairo Maia » 13 Mai 2019 10:06

ssflavio escreveu:O problema neste momento não está nos gets e sim no INKEY(0), que não reconhece o duplo clique.
Removi os GET´s de seu exemplo e recompilei. Aqui reconheceu normalmente. Veja seu exemplo modificado:
#include "std.ch"
#include "inkey.ch"
#include "hblang.ch"

REQUEST HB_GT_WIN_DEFAULT
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
function main()
   setmode(25,80)
   HB_SETCODEPAGE("PT850")
   HB_LANGSELECT("PT")
   SET( _SET_EVENTMASK, INKEY_ALL)
   
   /* set date british
   set date format to "DD/MM/YYYY"
   set epoch to (year(date()) - 89)
   set century on
   set bell on
   set deleted on
   set scoreboard off
   set talk off
   set wrap on
   set cursor on */
   * setblink(.f.)
   //Set Eventmask to K_LBUTTONDOWN  //Evita tela tremendo ao usar o mouse
   //Set Eventmask to 1002  //Evita tela tremendo ao usar mouse
   
   clear
   
   @ 01,00 say "TESTE DO MOUSE - MOVIMENTO E CLIQUES"
   X := 0
   Y := 0
   K := 0
   
   TXT := " "
   do while LastKey() != 27
      @ 05,00 say "posição X:"
      @ 06,00 say "posição y:"
      @ 07,00 say "clique:"
      K := InKey( 0 )
     
      X := mrow()
      Y := mcol()
      @ 05,11 say X
      @ 06,11 say Y
      @ 07,11 say K
     
      @ 10,00
     
      if K == K_MOUSEMOVE   && 1001
      elseif K == K_LBUTTONDOWN   && 1002
         @ 10,15 SAY "CLIQUE ESQUERDO DOWN" //GET TXT
        //READ
      elseif K == K_LBUTTONUP     && 1003
         @ 10,15 SAY "CLIQUE ESQUERDO UP" //GET TXT
        //READ
      elseif K == K_RBUTTONDOWN   && 1004
         @ 10,15 SAY "CLIQUE DIREITO DOWN" //GET TXT
        //READ
      elseif K == K_RBUTTONUP     && 1005
         @ 10,15 SAY "CLIQUE DIREITO UP" //GET TXT
        //READ
      elseif K == K_LDBLCLK       && 1006
         @ 10,15 SAY "DUPLOCLIQUE ESQUERDO" //GET TXT
        //READ
      elseif K == K_RDBLCLK       && 1007
         @ 10,15 SAY "DUPLOCLIQUE DIREITO" //GET TXT
        //READ
      elseif K == K_MBUTTONDOWN   && 1008  // Middle Button Down
         @ 10,15 SAY "CLIQUE CENTRO DOWN" //GET TXT
        //READ
      elseif K == K_MBUTTONUP     && 1009  // Middle Button Up
         @ 10,15 SAY "CLIQUE CENTRO UP" //GET TXT
        //READ
      elseif K == K_MDBLCLK       && 1010  // Middle Button Double Click
         @ 10,15 SAY "DUPLOCLIQUE CENTRO" //GET TXT
        //READ
      elseif K == K_MMLEFTDOWN    && 1011  // Mouse Move Left Down
         @ 10,15 SAY "Mouse Move Left Down" //GET TXT
        //READ
      elseif K == K_MMRIGHTDOWN   && 1012  // Mouse Move Right Down
         @ 10,15 SAY "Mouse Move Right Down" //GET TXT
        //READ
      elseif K == K_MMMIDDLEDOWN  && 1013  // Mouse Move Middle Down
         @ 10,15 SAY "Mouse Move Middle Down" //GET TXT
        //READ
      elseif K == K_MWFORWARD     && 1014  // Mouse Wheel Forward
         @ 10,15 SAY "RODINHA PARA FRENTE" //GET TXT
        //READ
      elseif K == K_MWBACKWARD    && 1015  // Mouse Wheel Backward
         @ 10,15 SAY "RODINHA PARA TRAS" //GET TXT
        //READ
      elseif K == K_NCMOUSEMOVE   && 1016  // Non-Client Area Mouse Movement
         @ 10,15 SAY "Non-Client Area Mouse Movement" //GET TXT
        //READ
      endif
     
      InKey( 0 )
      //@ 10,00
     
   enddo

   set cursor on
   set color to
   clear screen

return(nil)
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro