Como capturar e enviar teclas pra dialog

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como capturar e enviar teclas pra dialog

Mensagem por JoséQuintas »

Tem forma prática de capturar/enviar teclas pra dialog ?

Sei que SendKeys() da API Windows envia, tem algo pronto na hwgui?

Dialog aceita ON KEY DOWN ?
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como capturar e enviar teclas pra dialog

Mensagem por JoséQuintas »

Errei.....

Na verdade é capturar em "gets", e enviar para os "gets".

E talvez o mais difícil: saber qual é o "get" ativo

Mas podem ser os dois casos, posso ter utilidade pros dois - dialog e get
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Como capturar e enviar teclas pra dialog

Mensagem por Itamar M. Lins Jr. »

Olá!
Tem funções para isso.
Por exemplo saber em qual get a pessoal digitou F1, para aparecer a ajuda daquele GET.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Como capturar e enviar teclas pra dialog

Mensagem por Itamar M. Lins Jr. »

Olá!

Código: Selecionar todos

***************************
Function AjudaEmpresa(oVar)
***************************
*
*
Local sTxt:=""

If oCRT:Handle = hwg_Getfocus()

   Text to File "CRT.TXT"
     ANEXO ÚNICO
     Códigos de Detalhamento do Regime e da Situação TABELA A Código de Regime Tributário CRT

     1 Simples Nacional

     2 Simples Nacional  excesso de sublimite da receita bruta

     3 Regime Normal

     NOTAS EXPLICATIVAS:

     O código 1 será preenchido pelo contribuinte quando for optante pelo Simples Nacional.

     O código 2 será preenchido pelo contribuinte optante pelo Simples Nacional mas que tiver ultrapassado o
     sublimite de receita bruta fixado pelo estado/DF e estiver impedido de recolher o ICMS/ISS por esse regime,
     conforme arts. 19 e 20 da LC 123/2006.

     O código 3 será preenchido pelo contribuinte que não estiver na situação 1 ou 2.
   EndText

   sTXT := memoread("CRT.TXT")

EndIf

If !empty(sTxt)
   hwg_MsgInfo(sTxt)
EndIf
Código velho, tem outras formas de fazer mais simples, mas gostei do comando. rsrsrs
Sem a necessidade de gravar em disco.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como capturar e enviar teclas pra dialog

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:If oCRT:Handle = hwg_Getfocus()
Deu no mesmo. De onde veio oCRT ?
E porque hwg_GetFocus() ?

Isso indicou o que, do que? veio de onde?
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Como capturar e enviar teclas pra dialog

Mensagem por Itamar M. Lins Jr. »

Olá!
É oCRT é o objeto.

Código: Selecionar todos

@ nA,nB get oCRT VAR cCRT size nX,nY
Podendo ser qualquer objeto que pegue foco. OwnerButton não pega foco.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como capturar e enviar teclas pra dialog

Mensagem por JoséQuintas »

Mostrou um fonte que grava texto em disco, e um fonte com get.

Aonde capturou/enviou teclas ?
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Como capturar e enviar teclas pra dialog

Mensagem por Itamar M. Lins Jr. »

Olá!
Quando abrimos o DIALOG o FOCO fica em algum objeto.
Nisso você monitora via SET KEY onde está o foco ou VIA VALID, WHEN se for get ou ON KEYDOWN.

Código: Selecionar todos

#xcommand @ <x>,<y> GET [ <oEdit> VAR ]  <vari>  ;
            [ OF <oWnd> ]              ;
            [ ID <nId> ]               ;
            [ SIZE <width>, <height> ] ;
            [ COLOR <color> ]          ;
            [ BACKCOLOR <bcolor> ]     ;
            [ PICTURE <cPicture> ]     ;
            [ WHEN  <bGfocus> ]        ;
            [ VALID <bLfocus> ]        ;
            [ ON KEYDOWN <bKeyDown>]   ;
            [ ON CHANGE <bChange> ]    ;
            [ ON INIT <bInit> ]        ;
            [ ON SIZE <bSize> ]        ;
            [<lPassword: PASSWORD>]    ;
            [ MAXLENGTH <nMaxLength> ] ;
            [ STYLE <nStyle> ]         ;
            [<lnoborder: NOBORDER>]    ;
            [ FONT <oFont> ]           ;
            [ TOOLTIP <ctoolt> ]       ;

Código: Selecionar todos

hwg_setdlgkey(oDlg,0,VK_F1,{||AjudaEmpresa()}) 
//SET KEY 0,VK_F1 TO {||AjudaEstoque()} usava assim

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como capturar e enviar teclas pra dialog

Mensagem por JoséQuintas »

É......
Um grande motivo pra não usar hwgui diretamente e usar herança. Vai evitar muita repetição de fonte.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como capturar e enviar teclas pra dialog

Mensagem por JoséQuintas »

Disse isso pelo seguinte:

Se é pra adicionar fonte em tudo que é GET, muito mais simples criar um controle por herança que já contenha o código fonte.
Ao invés de milhares de rotinas no aplicativo, passa a existir apenas uma.
E o mesmo referente estilos, cores e afins.
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Como capturar e enviar teclas pra dialog

Mensagem por Itamar M. Lins Jr. »

Olá!
Não estou entendendo.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Como capturar e enviar teclas pra dialog

Mensagem por Itamar M. Lins Jr. »

Olá!
Talvez por isso não gosto de IDE´s que desenham.
Tem que colocar no FONTE TODOS os controles do objeto e que nem usamos.

REFATORAR, REFATORAR....

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como capturar e enviar teclas pra dialog

Mensagem por JoséQuintas »

Foi essa a grande mudança do NET.

Na prática não usamos o que vém pronto, do jeito que vém pronto, sempre modificamos para o nosso jeito.

Ficar modificando um a um, é só ficar enchendo de fonte pra isso em tudo que é lugar.
Muitos ainda não perceberam isso, principalmente quando a LIB não é orientada a objeto.
Ficar criando tela em IDE obriga a isso.

Pra mim IDE é boa pra facilitar editar fonte, e também pra fazer referência cruzada entre os fontes, pra indicar possíveis erros.
Isso não existe pra Harbour.

NÃO testei criar projeto no Programmers Notepad, pra ver se ele faz isso quando é projeto.
Muito trabalho pra poucas coisa, já que no caso dele vai ser só uma ajuda parcial.
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/
Responder