Como contornar o VALID
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como contornar o VALID
Tem lá o GET com VALID.
Tem lá o botão cancelar.
Ao clicar no cancelar, não deixa sair do VALID.
Também fica ruim que o destaque de foco desaparece.
Olhando a tela não há destaque para o que está sendo validado (hwg_SetColorInFocus() perdeu o efeito porque perdeu o foco)
Tem alternativa pra isso ?
Tem lá o botão cancelar.
Ao clicar no cancelar, não deixa sair do VALID.
Também fica ruim que o destaque de foco desaparece.
Olhando a tela não há destaque para o que está sendo validado (hwg_SetColorInFocus() perdeu o efeito porque perdeu o foco)
Tem alternativa pra isso ?
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 contornar o VALID
Olá!
Verificando se o foco estava no get com valid e teclou ENTER.
Saudações,
Itamar M. Lins Jr.
Verificando se o foco estava no get com valid e teclou ENTER.
Código: Selecionar todos
If hwg_Getkeystate(VK_RETURN)< 0Itamar 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 contornar o VALID
E como usa isso ?
Num primeiro momento testei todas as possibilidades: menor, maior e igual e nenhuma teve efeito.
Num primeiro momento testei todas as possibilidades: menor, maior e igual e nenhuma teve efeito.
Código: Selecionar todos
IF aItem[ CFG_ISKEY ] .AND. hwg_GetKeyState( VK_RETURN ) == 0
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 contornar o VALID
engraçado...
Mesma rotina, aí não perdeu o foco.
Código: Selecionar todos
STATIC FUNCTION OkCurrent( aItem, Self )
LOCAL nSelect, lEof, xStatus
xStatus := hwg_GetKeyState( VK_RETURN )
hwg_MsgInfo( xStatus )
IF aItem[ CFG_ISKEY ] .AND. hwg_GetKeyState( VK_RETURN ) == 0
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 contornar o VALID
Única explicação: ter atualizado o label antes da mensagem.
Alterar essa ordem pode resolver sobre o foco, mas ainda resta o VALID.
Código: Selecionar todos
lEof := Eof()
SetLabelValue( ::oDlg, aItem[ CFG_VCONTROL ], FieldGet( FieldNum( aItem[ CFG_VSHOW ] ) ) )
SELECT ( nSelect )
IF lEof
#ifdef HBMK_HAS_HWGUI
hwg_MsgInfo( "Código não cadastrado" )
#endif
RETURN .F.
ENDIF
ENDIF
RETURN .T.
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 contornar o VALID
Aproveitei pra deixar o fonte mais genérico.
Colocando outra mensagem no VALID, o destaque de foco não desaparece nunca.
Mas deixando só a que interessa, o foco some.
Notas:
1) Os #ifdef são porque as outras LIBs não tem hwg_MsgInfo()
2) A outra mensagem é só em determinada condição, mas é a mesma hwg_MsgInfo()
3) Depois que postei, vi que o outro SEEK também pode ser simplificado pra SEEK xValue, o que não deixa nenhum comando de GUI entre as mensagens
Colocando outra mensagem no VALID, o destaque de foco não desaparece nunca.
Mas deixando só a que interessa, o foco some.
Notas:
1) Os #ifdef são porque as outras LIBs não tem hwg_MsgInfo()
2) A outra mensagem é só em determinada condição, mas é a mesma hwg_MsgInfo()
3) Depois que postei, vi que o outro SEEK também pode ser simplificado pra SEEK xValue, o que não deixa nenhum comando de GUI entre as mensagens
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 contornar o VALID
Não dá pra usar o gravador de imagem do Windows pra mostrar isso.
O gravador do Windows é meio lixo: se perde com ampliação ativada, além disso, ele só grava a janela principal, mesmo com o foco na janela secundária.
Com a hwg_MsgInfo() dentro do IF: o amarelo do foco desaparece
Com a hwg_MsgInfo() FORA do IF, em todos os VALIDs, o foco vai ficando em todos os GETs.
Tirando isso, que não é o mais importante sobre o VALID, ainda tem o problema de não cancelar o VALID.
ESC até faz isso, mas além de abandonar o GET também abandona o módulo.
O gravador do Windows é meio lixo: se perde com ampliação ativada, além disso, ele só grava a janela principal, mesmo com o foco na janela secundária.
Com a hwg_MsgInfo() dentro do IF: o amarelo do foco desaparece
Com a hwg_MsgInfo() FORA do IF, em todos os VALIDs, o foco vai ficando em todos os GETs.
Tirando isso, que não é o mais importante sobre o VALID, ainda tem o problema de não cancelar o VALID.
ESC até faz isso, mas além de abandonar o GET também abandona o módulo.
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 contornar o VALID
Olá!
If teclou enter no valid ...
If Pressionou botão cancelar ...
Em qualquer controle eu uso {|| lBtn:=.t. ou lOk := .T....} para saber o que aconteceu.
GUI é foco o tempo todo.
E ainda tem o ON KEYDOWN {]|} do get...
Saudações,
Itamar M. Lins Jr.
Eu uso com um FLAG lBtn := .F.E como usa isso ?
If teclou enter no valid ...
If Pressionou botão cancelar ...
Em qualquer controle eu uso {|| lBtn:=.t. ou lOk := .T....} para saber o que aconteceu.
GUI é foco o tempo todo.
E ainda tem o ON KEYDOWN {]|} do 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 contornar o VALID
Olá!
hwg_msginfo() //só mostra caracteres não mostra variaveis tipo logical, numeric, date... tem que transformar em charectere.
Saudações,
Itamar M. Lins Jr.
hwg_msginfo() //só mostra caracteres não mostra variaveis tipo logical, numeric, date... tem que transformar em charectere.
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 contornar o VALID
Código: Selecionar todos
hwg_MsgInfo( Transform( hwg_GetKeyState( VK_RETURN ), "" ) )
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/
-
pauloa1
- Usuário Nível 3

- Mensagens: 227
- Registrado em: 25 Jun 2008 14:57
- Localização: Augusto Pestana-RS
Como contornar o VALID
No começo da função da valid coloca
if selffocus(objeto:handle)
return(.t.)
endif
Obs> Objeto: nome do botão cancelar
Paulo
if selffocus(objeto:handle)
return(.t.)
endif
Obs> Objeto: nome do botão cancelar
Paulo
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Como contornar o VALID
Olá!
Não sei se com OwnnerButton vai funcionar. selffocus()
Será o evento ON CLICK neste caso.
Saudações,
Itamar M. Lins Jr.
Não sei se com OwnnerButton vai funcionar. selffocus()
Será o evento ON CLICK neste caso.
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 contornar o VALID
Não pode, se executar o click antes do valid, também executaria de um SAVE mesmo com conteúdo inválido.Itamar M. Lins Jr. escreveu:Não sei se com OwnnerButton vai funcionar. selffocus()
Será o evento ON CLICK neste caso.
Acaba dependendo de algo meio equivalente a NextKey(), que seria testar pra onde vai.
Se o SelfFocus() estiver testando se o foco está indo para o button poderá ser a melhor saída.
Só que ele terá que ser conhecido no momento do VALID - alguma variável visível ou equivalente
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 contornar o VALID
Função não existe.
Mas ok:
Mas ok:
addons\hwgui.hbc (not installed):
HWG_DRAWFOCUSRECT()
HWG_GETFOCUS()
HWG_SELFFOCUS()
HWG_SETCOLORINFOCUS()
HWG_SETFOCUS()
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 contornar o VALID
Olá!
Ele "Paulo" deve usar hwgui bem antiga.
Saudações,
Itamar M. Lins Jr.
Ele "Paulo" deve usar hwgui bem antiga.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.