Clipper On Line • Ver Tópico - K_CTRL_C e K_CTRL_V (copiar/colar)

K_CTRL_C e K_CTRL_V (copiar/colar)

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

Moderador: Moderadores

 

K_CTRL_C e K_CTRL_V (copiar/colar)

Mensagempor asimoes » 07 Abr 2017 09:06

Pessoal,

Estou usando uma função para copiar e colar conteúdo de gets, notei o seguinte olhando a inkey.ch a K_CTRL_C e PgDn tem o mesmo valor 3, quando se tecla CTRL + C, faz também um PgDn e vice-versa , ou seja finaliza o get, mas intenção não é essa, quero que permaneça no GET ativo, tem alguma solução ?

#include "inkey.ch"

******************************************************************
* Autor   : Alexandre Simões
* Objetivo: Facilitar a cópia de conteúdo de gets para outros gets
* Data    : 06/04/2017
* Sintaxe : SetKey( K_CTRL_C, {|| CopyPaste() } )
*           SetKey( K_CTRL_V, {|| CopyPaste() } )
*******************************************************************

FUNCTION CopyPaste()
LOCAL oGet := GetActive(), lIsKeyCtrl, nBits, xVar

   SetKey( K_CTRL_C, NIL )
   SetKey( K_CTRL_V, NIL )
   
   nBits := hb_GtInfo( HB_GTI_KBDSHIFTS )
   
   lIsKeyCtrl := ( nBits == hb_BitOr( nBits, HB_GTI_KBD_CTRL ) )
   
   nKey       := LastKey()
   
   DO CASE
       CASE nKey = K_CTRL_C
         IF lIsKeyCtrl
            IF GetActive() != NIL
               xVar := Transform( oGet:varGet(), oGet:Picture )
               IF ValType( xVar ) = "N"
                  xVar := hb_NtoS(  xVar )
               ELSEIF ValType( xVar ) = "D"
                  xVar := DTOC( xVar )
               ENDIF
               hb_gtInfo( HB_GTI_CLIPBOARDDATA, xVar )
            ENDIF
         ENDIF
       CASE nKey = K_CTRL_V
         IF lIsKeyCtrl
            IF GetActive() != NIL
               xVar := hb_gtInfo( HB_GTI_CLIPBOARDDATA )
               IF ValType( oGet:VarGet() ) = "C"
               ELSEIF ValType( oGet:VarGet() ) = "N"
                  xVar := Val( xVar )
               ELSEIF ValType( oGet:VarGet() )  = "D"
                  xVar := CTOD( xVar )
               ENDIF
               oGet:VarPut( xVar )
            ENDIF
         ENDIF
   ENDCASE
   
   SetKey( K_CTRL_C, {|| CopyPaste() } )
   SetKey( K_CTRL_V, {|| CopyPaste() } )
   
RETURN .T.
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

K_CTRL_C e K_CTRL_V (copiar/colar)

Mensagempor dbdc5554 » 07 Abr 2017 11:30

faço contorl + c e control + V em um mesmo READ

get a
get b
get c
get d

read

faço control C no campoa e copio par aos outro ou qq outro e fica tudo nromal

usu xhb + wvw posso ver se tem algum comando rs ou ch

Paiva
dbdc5554
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 149
Data de registro: 03 Dez 2012 07:49
Cidade/Estado: uberlandia-MG
Curtiu: 0 vez
Mens.Curtidas: 1 vez

K_CTRL_C e K_CTRL_V (copiar/colar)

Mensagempor JoséQuintas » 07 Abr 2017 11:39

Se o problema é a tecla... elimina a tecla....

oGet:VarPut( xVar )
KEYBOARD Chr(205)
Inkey(0)
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

K_CTRL_C e K_CTRL_V (copiar/colar)

Mensagempor asimoes » 07 Abr 2017 13:55

Resolvi com oGet:ExitState(0) //permanece no get
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

K_CTRL_C e K_CTRL_V (copiar/colar)

Mensagempor rubens » 13 Fev 2020 14:37

Boa tarde ...

ASimoes,

Usei essa função no inicio do sistema e consigo copiar/colar de boa...
Mas a tecla page down parou de funcionar dentro do read... Se estou no primeiro get e pressiono page down não sai do read.
Aconteceu isso com você?
Sabe como resolver?

No Browse() funciona normal..

p.s. Me desculpem por estar reativando um tópico antigo...

Obrigado

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

K_CTRL_C e K_CTRL_V (copiar/colar)

Mensagempor JoséQuintas » 13 Fev 2020 20:29

Harbour?

   hb_gtInfo( HB_GTI_INKEYFILTER, { | nKey | MyInkeyFilter( nKey ) } )


/*
ZE_INKEYFILTER
José Quintas
*/

#include "hbgtinfo.ch"
#include "inkey.ch"

FUNCTION MyInkeyFilter( nKey )

   LOCAL nBits, lIsKeyCtrl

   nBits      := hb_GtInfo( HB_GTI_KBDSHIFTS )
   lIsKeyCtrl := ( nBits == hb_BitOr( nBits, HB_GTI_KBD_CTRL ) )
   SWITCH nKey
   CASE HB_K_CLOSE     ; RETURN K_ESC
   //CASE HB_K_RESIZE    ; wvgSetAppWindow():InvalidateRect(); wvgSetAppWindow():Refresh(); RETURN NIL
   //CASE HB_GTE_RESIZED ; wvgSetAppWindow():InvalidateRect(); wvgSetAppWindow():Refresh(); RETURN NIL
   CASE K_MWBACKWARD   ; RETURN K_DOWN
   CASE K_MWFORWARD    ; RETURN K_UP
   CASE K_RBUTTONDOWN  ; RETURN K_ESC
   CASE K_RBUTTONUP    ; RETURN NIL
   CASE K_RDBLCLK      ; RETURN K_ESC
   CASE K_TAB          ; RETURN K_DOWN
   CASE K_SH_TAB       ; RETURN K_UP
   CASE K_CTRL_V
      IF lIsKeyCtrl
         hb_GtInfo( HB_GTI_CLIPBOARDPASTE )
         RETURN NIL
      ENDIF
   CASE K_CTRL_C
      IF lIsKeyCtrl
         IF GetActive() != NIL
            hb_gtInfo( HB_GTI_CLIPBOARDDATA, Transform( GetActive():VarGet(), "" ) )
            RETURN NIL
         ENDIF
      ENDIF
   ENDSWITCH

   RETURN nKey
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

K_CTRL_C e K_CTRL_V (copiar/colar)

Mensagempor rubens » 13 Fev 2020 21:47

O texto da minha postagem foi alterado !!!
Use essa função no início do sistema e possa copiar / colar a boa ...
Mas uma página pressionada para baixo parou de funcionar dentro da leitura ... Se você não está conseguindo obter a primeira página pressionada, não sai do ler.


é para ser:
Usei essa função no início do meu sistema e funcionou para copiar/colar de boa...
Mas o page down parou de funcionar dentro do read. Quando pressiona page down não sai do read.

mas enfim...
Como usaria o que você postou Quintas.. ?
tem que definie algum set? Como seria a chamada?

Obrigado

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

K_CTRL_C e K_CTRL_V (copiar/colar)

Mensagempor JoséQuintas » 14 Fev 2020 08:34

rubens escreveu:Como usaria o que você postou Quintas.. ?
tem que definie algum set?
Como seria a chamada?


O post tem uma função e a chamada da função.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

K_CTRL_C e K_CTRL_V (copiar/colar)

Mensagempor rubens » 16 Fev 2020 18:32

Obrigado Quintas...
Funcionou direitinho!!!
:-Y
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 9 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