Página 2 de 2
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 20 Set 2022 17:41
por deividdjs
é o GETSYS.PRG mesmo q não libera os gets para essa finalidade ... tirei e funcionou !! alguem tem ideia qual é a função dentro dele que bloqueia ... preciso de compilar ele junto ...
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 04 Jan 2024 16:59
por leandrolinauer
Boa tarde.
Utilizo esta função no meu sistema.
Código: Selecionar todos
hb_gtInfo( HB_GTI_INKEYFILTER, ;
{ | 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 K_MWBACKWARD
RETURN K_DOWN
CASE K_MWFORWARD
RETURN K_UP
CASE K_RBUTTONDOWN
RETURN K_ESC
CASE K_RDBLCLK
RETURN K_ESC
CASE K_SH_TAB
RETURN K_UP
CASE K_CTRL_V
IF lIsKeyCtrl
IF GetActive() != NIL
getactive():VarPut( PadR(Left(getactive():buffer,(getactive():pos()-1)) + hb_GtInfo( HB_GTI_CLIPBOARDDATA )+if(ReadInsert(),Right(getactive():buffer, Len(getactive():buffer)-(getactive():pos()-1)),Right(getactive():buffer, Len(getactive():buffer)- ((getactive():pos()-1)+len(hb_GtInfo( HB_GTI_CLIPBOARDDATA ))) ) ) , Len(getactive():buffer)) )
getactive():UpdateBuffer()
RETURN 0
ENDIF
ENDIF
CASE K_CTRL_C
IF lIsKeyCtrl
IF GetActive() != NIL
hb_gtInfo( HB_GTI_CLIPBOARDDATA, Transform( AllTrim(GetActive():buffer),"") )
RETURN 0
ENDIF
ENDIF
ENDSWITCH
RETURN nKey
} )
Quando utilizo ele sem os menus da gtwvw, ou seja os meus ele funciona perfeitamente.
Quando compilo ele usando os menus da gtwvw ou toolbar ele não funciona, qdo tecla em CTRL-C ele fecha a leitura GET.
Alguem sabe o motivo?
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 05 Jan 2024 16:18
por deividdjs
leandrolinauer escreveu:Boa tarde.
Utilizo esta função no meu sistema.
Código: Selecionar todos
hb_gtInfo( HB_GTI_INKEYFILTER, ;
{ | 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 K_MWBACKWARD
RETURN K_DOWN
CASE K_MWFORWARD
RETURN K_UP
CASE K_RBUTTONDOWN
RETURN K_ESC
CASE K_RDBLCLK
RETURN K_ESC
CASE K_SH_TAB
RETURN K_UP
CASE K_CTRL_V
IF lIsKeyCtrl
IF GetActive() != NIL
getactive():VarPut( PadR(Left(getactive():buffer,(getactive():pos()-1)) + hb_GtInfo( HB_GTI_CLIPBOARDDATA )+if(ReadInsert(),Right(getactive():buffer, Len(getactive():buffer)-(getactive():pos()-1)),Right(getactive():buffer, Len(getactive():buffer)- ((getactive():pos()-1)+len(hb_GtInfo( HB_GTI_CLIPBOARDDATA ))) ) ) , Len(getactive():buffer)) )
getactive():UpdateBuffer()
RETURN 0
ENDIF
ENDIF
CASE K_CTRL_C
IF lIsKeyCtrl
IF GetActive() != NIL
hb_gtInfo( HB_GTI_CLIPBOARDDATA, Transform( AllTrim(GetActive():buffer),"") )
RETURN 0
ENDIF
ENDIF
ENDSWITCH
RETURN nKey
} )
Quando utilizo ele sem os menus da gtwvw, ou seja os meus ele funciona perfeitamente.
Quando compilo ele usando os menus da gtwvw ou toolbar ele não funciona, qdo tecla em CTRL-C ele fecha a leitura GET.
Alguem sabe o motivo?
BOA TARDE AMIGO .. eu utilizo assim ...
Código: Selecionar todos
*----------------------------*
* FUNCAO COPIA E COLA HARBOUR // ACIONA CTRL + C / CTRL + V
*----------------------------*
#include "hbgtinfo.ch"
FUNCTION ACTCOPYPASTE()
hb_gtInfo( HB_GTI_INKEYFILTER, { | nKey |
LOCAL nBits, lIsKeyCtrl
SWITCH nKey
CASE K_MWBACKWARD
RETURN K_DOWN
CASE K_MWFORWARD
RETURN K_UP
CASE K_RBUTTONDOWN
keyboard HB_GTINFO( HB_GTI_CLIPBOARDPASTE ) // COLA C/ BOTÃO DIREITO
RETURN
CASE K_RDBLCLK
RETURN K_ESC
CASE K_LDBLCLK
RETURN K_ENTER
CASE K_CTRL_V
nBits := hb_GtInfo( HB_GTI_KBDSHIFTS )
lIsKeyCtrl := ( nBits == hb_BitOr( nBits, HB_GTI_KBD_CTRL ) )
IF lIsKeyCtrl
keyboard HB_GTINFO( HB_GTI_CLIPBOARDPASTE ) // COLA C/ CTRL+V
RETURN 0
ENDIF
CASE K_CTRL_C
nBits := hb_gtInfo( HB_GTI_KBDSHIFTS )
lIsKeyCtrl := ( nBits == hb_BitOr( nBits, HB_GTI_KBD_CTRL ) )
IF lIsKeyCtrl
IF GetActive() != NIL
// O IF ABAIXO FOI ALTERADO POR ANDERSON
IF !EMPTY(GetActive():VarGet())
// SE O GET JA TINHA UM VALOR, VAI COPIAR ESSE VALOR JA SALVO PARA COLAR
hb_gtInfo( HB_GTI_CLIPBOARDDATA, Transform( GetActive():VarGet(), "" ) )
ELSE
// O GET ESTA VAZIO, MAS PODE HAVER CARACTERES NO BUFFER DESSE GET!
hb_gtInfo( HB_GTI_CLIPBOARDDATA, GetActive():BUFFER )
ENDIF
MsgExclamation( "Copiado al portapapeles" )
RETURN 0
ENDIF
ENDIF
ENDSWITCH
RETURN nKey
} )
SET( _SET_EVENTMASK, INKEY_ALL )
RETURN
e no inico do sistema colo a função ...
Código: Selecionar todos
*---------------*
FUNCTION MAIN() && PROGRAMA PRINCIPAL
*---------------*
*********************************************
* FUNۂO COPIA E COLA (CTRL + C / CTRL + V) *
*********************************************
ACTCOPYPASTE() // ATIVA FUNۂO
Testa ai ..
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 08 Jan 2024 17:27
por leandrolinauer
Boa tarde.
Fiz o teste usando esta que você mencionou e tbem ocorre o mesmo problema.
Detalhe que o sistema é o mesmo, o compilador é o mesmo, ou seja, só mudo o projeto mas buscam os mesmos prgs só que o meu usa os menus e toolbar da GTWVW e aí os gets não aceitam o CTRL+C e nem o CTRL+V, coloquei uma mensagem nele para parar quando passar, em um para na mensagem já no meu o mesmo prg compilado com a mesma mensagem ele não passa pela função.
não aciona.
Precisamente creio que ele se comporta como um PG-DOWN
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 08 Jan 2024 19:32
por deividdjs
Eu uso um GETSYS.prg Modificado tbm ... se quiser posso se quiser posso te passar pra vc fazer um teste com ele ...
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 08 Jan 2024 20:05
por JoséQuintas
Faz um teste isolado sem getsys.
Código: Selecionar todos
#include "hbgtinfo.ch"
cText := "Texto que está sendo copiado"
hb_gtInfo( HB_GTI_CLIPBOARDDATA, cText )
Código: Selecionar todos
#include "hbgtinfo.ch"
cText := hb_gtInfo( HB_GTI_CLIPBOARDPASTE )
? cText
Depois disso funcionar, aí entra mexer na getsys, sabendo o tipo de parâmetro a ser usado.
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 09 Jan 2024 15:15
por leandrolinauer
Boa tarde.
Localizei o problema, preciso passar este conteudo da função abaixo para a mais abaixo.
Código: Selecionar todos
local bAction
if nkey==P_DEFAULT_MENUKEYEVENT //linha que da erro
* MenuKeyEvent
return nMenuChecker(WVW_GETLASTMENUEVENT())
elseif (bAction := SETKEY(nKey)) != NIL
eval(bAction, PROCNAME(), PROCLINE(), READVAR())
return 0
endif
If nkey==P_DEFAULT_MENUKEYEVENT = erro nesta linha
Este código acima que não tem o ctrc e ctrv, que quero eliminar e substituir pelo abaixo, mas inserindo esta função acima no debaixo, não consegui, só da erro
Código: Selecionar todos
FUNCTION nAfterInkey(nkey)
LOCAL nBits, lIsKeyCtrl, bAction
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 K_MWBACKWARD
RETURN K_DOWN
CASE K_MWFORWARD
RETURN K_UP
CASE K_RBUTTONDOWN
RETURN K_ESC
CASE K_RDBLCLK
RETURN K_ESC
CASE K_LDBLCLK
RETURN K_ENTER
CASE K_SH_TAB
RETURN K_UP
CASE K_CTRL_V
IF lIsKeyCtrl
IF GetActive() != NIL
getactive():VarPut( PadR(Left(getactive():buffer,(getactive():pos()-1)) + hb_GtInfo( HB_GTI_CLIPBOARDDATA )+if(ReadInsert(),Right(getactive():buffer, Len(getactive():buffer)-(getactive():pos()-1)),Right(getactive():buffer, Len(getactive():buffer)- ((getactive():pos()-1)+len(hb_GtInfo( HB_GTI_CLIPBOARDDATA ))) ) ) , Len(getactive():buffer)) )
getactive():UpdateBuffer()
getactive():end()
RETURN 0
ENDIF
ENDIF
CASE K_CTRL_C
IF lIsKeyCtrl
IF GetActive() != NIL
hb_gtInfo( HB_GTI_CLIPBOARDDATA, Transform( AllTrim(GetActive():buffer),"") )
RETURN 0
ENDIF
ENDIF
ENDSWITCH
RETURN nKey
RETURN
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 09 Jan 2024 15:42
por leandrolinauer
Achei o problema
Falta do define abaixo no fonte necessário.
#DEFINE P_DEFAULT_MENUKEYEVENT 1024 //! must match with HBGTWVW.H
Resolvido
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 10 Jan 2024 13:52
por JoséQuintas
O ideal seria usar compilação -w3 -es2.
Isso acusa a falta de #define durante a compilação, além de outros erros.
A compilação assim exige declarar todas as variáveis e campos do fonte.
Vale muito a pena fazer isso, mas pra um aplicativo já existente, pode significar meses de trabalho.
Opcionalmente, pode definir isso só pra fontes novos.
Pode fixar o uso de compilar usando -w3, e nos fontes velhos coloca:
E com o tempo pode ir resolvendo cada fonte, começando pelas funções de uso geral, e remover esse #pragma.
Quando fiz isso, uma coisa que usei foi listar os fontes em ordem de tamanho, e começar pelos menores.
Não adianta ter pressa, realmente pode demorar meses até terminar.
Mas conforme vai se acostumando, vai fazendo tudo mais rápido, e vai desenvolvendo já fazendo a checagem "de cabeça", antes do compilador reclamar.
Isso evita muito erro em cliente, porque já vai ver erro na compilação, e não na execução.
Copiar e Colar e uso com Mouse WVT/WVW
Enviado: 13 Jan 2024 09:54
por leandrolinauer
Verdade, realmente já daria certo para evitar alguns erros.
Fiz uma alteração no sistema para mudança de LAYOUT e nisto eu acabei colocando uma linha no lugar errado para funcionar o menu e a toolbar, anulando a anterior que tinha a configuração do CTRL+C entre outras.
Agora esta funcionando certinho, tanto em um LAYOUT e no outro.
Nesta alteração criei um LAYOUT mais agradável aos olhos.
Valeu.
Obrigado.