Copiar e Colar e uso com Mouse WVT/WVW
Moderador: Moderadores
- deividdjs
- Usuário Nível 3

- Mensagens: 377
- Registrado em: 19 Set 2006 09:39
- Localização: Foz do Iguaçu / Pr
Copiar e Colar e uso com Mouse WVT/WVW
é 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 ...
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Copiar e Colar e uso com Mouse WVT/WVW
Boa tarde.
Utilizo esta função no meu sistema.
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?
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 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?
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- deividdjs
- Usuário Nível 3

- Mensagens: 377
- Registrado em: 19 Set 2006 09:39
- Localização: Foz do Iguaçu / Pr
Copiar e Colar e uso com Mouse WVT/WVW
leandrolinauer escreveu:Boa tarde.
Utilizo esta função no meu sistema.Quando utilizo ele sem os menus da gtwvw, ou seja os meus ele funciona perfeitamente.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 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
Código: Selecionar todos
*---------------*
FUNCTION MAIN() && PROGRAMA PRINCIPAL
*---------------*
*********************************************
* FUNۂO COPIA E COLA (CTRL + C / CTRL + V) *
*********************************************
ACTCOPYPASTE() // ATIVA FUNۂO
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Copiar e Colar e uso com Mouse WVT/WVW
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
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
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- deividdjs
- Usuário Nível 3

- Mensagens: 377
- Registrado em: 19 Set 2006 09:39
- Localização: Foz do Iguaçu / Pr
Copiar e Colar e uso com Mouse WVT/WVW
Eu uso um GETSYS.prg Modificado tbm ... se quiser posso se quiser posso te passar pra vc fazer um teste com ele ...
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Copiar e Colar e uso com Mouse WVT/WVW
Faz um teste isolado sem getsys.
Depois disso funcionar, aí entra mexer na getsys, sabendo o tipo de parâmetro a ser usado.
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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Copiar e Colar e uso com Mouse WVT/WVW
Boa tarde.
Localizei o problema, preciso passar este conteudo da função abaixo para a mais abaixo.
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
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
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
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Copiar e Colar e uso com Mouse WVT/WVW
Achei o problema
Falta do define abaixo no fonte necessário.
#DEFINE P_DEFAULT_MENUKEYEVENT 1024 //! must match with HBGTWVW.H
Resolvido
Falta do define abaixo no fonte necessário.
#DEFINE P_DEFAULT_MENUKEYEVENT 1024 //! must match with HBGTWVW.H
Resolvido
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Copiar e Colar e uso com Mouse WVT/WVW
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.
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:
Código: Selecionar todos
#pragma -w0
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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Copiar e Colar e uso com Mouse WVT/WVW
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.
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.
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)