Como capturar e enviar teclas pra dialog
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como capturar e enviar teclas pra dialog
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 ?
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como capturar e enviar teclas pra dialog
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
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Como capturar e enviar teclas pra dialog
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.
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.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Como capturar e enviar teclas pra dialog
Olá!
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.
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
Sem a necessidade de gravar em disco.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como capturar e enviar teclas pra dialog
Deu no mesmo. De onde veio oCRT ?Itamar M. Lins Jr. escreveu:If oCRT:Handle = hwg_Getfocus()
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Como capturar e enviar teclas pra dialog
Olá!
É oCRT é o objeto.
Podendo ser qualquer objeto que pegue foco. OwnerButton não pega foco.
Saudações,
Itamar M. Lins Jr.
É oCRT é o objeto.
Código: Selecionar todos
@ nA,nB get oCRT VAR cCRT size nX,nYSaudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como capturar e enviar teclas pra dialog
Mostrou um fonte que grava texto em disco, e um fonte com get.
Aonde capturou/enviou teclas ?
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Como capturar e enviar teclas pra dialog
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.
//SET KEY 0,VK_F1 TO {||AjudaEstoque()} usava assim
Saudações,
Itamar M. Lins Jr.
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()}) Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

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

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como capturar e enviar teclas pra dialog
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.
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Como capturar e enviar teclas pra dialog
Olá!
Não estou entendendo.
Saudações,
Itamar M. Lins Jr.
Não estou entendendo.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Como capturar e enviar teclas pra dialog
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.
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.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como capturar e enviar teclas pra dialog
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.
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/
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/