Paulo_CPV escreveu:Toledo ainda está dando erro
Você diz que dá um erro, mas não fala qual é o erro.
Toledo escreveu:mostre como você está montando o TEXTBOX e como está as funções de validação e SetConfOFF
Bom, você não passou qual é a função SetConfOFF, então vou presumir que seja a função que o Pablo postou na sua última mensagem.
Mas na função do Pablo (MiniGui Extended) faria apenas uma modificação:
Function SetConfOFF(cCampo) //modifiquei esta linha
Local cFrmName := ThisWindow.Name
Local cCmpName := This.FocusedControl
Local x := GetControlIndex(cCmpName, cFrmName)
Local nMaxLength := _HMG_aControlRangeMax[x]
Local nInputMask := Len(_HMG_aControlInputMask[x])
If nInputMask > 0
nMaxLength := nInputMask
Endif
If !Empty(cCampo) //modifiquei esta linha
If nMaxLength == GetProperty(cFrmName,cCmpName,"CaretPos")
InsertTab()
Endif
Endif
Return Nil
Toledo escreveu:volte a função de validação para ON ENTER
Como observei na minha mensagem anterior, você teria que voltar a função de validação para ON ENTER.
Em todos os exemplos que postei ou nos exemplos do Pablo, sempre utilizamos ON CHANGE (ou ON ENTER). Observe que tem um espaço depois de ON.
Paulo_CPV escreveu:::ValidarData( This.Value )
O que é estes dois pontos duplos antes do nome da função?
Paulo_CPV escreveu:IF nMes = 2
A sua função de validação de data só vai funcionar corretamente se o mês da data for fevereiro (2) e o dia tem que ser 28 ou 29, conforme ano bissexto. Qualquer outra data, vai ocorrer um erro, mesmo que a data esteja certa.
Bom, para que a validação e a função SetConfOFF() funcione, faça o seguinte:
1 - utilize a função SetConfOFF() que postei acima.
2 - altere a sua função de validação de data por esta:
Function ValidarData( cData )
Local lRet:=.T.
if Empt(cData)
MSGINFO("Data digitada incorreta ! Por favor digite novamente.")
cFrmName := thiswindow.name
cCmpName := this.focusedcontrol
SETFOCUS &(cCmpName) OF &(cFrmName)
endif
Return (lRet)
Observação: quando a data não for válida (por exemplo: 31/02/2014) o foco vai continuar no campo.
3 - no TextBox use:
ON ENTER { || ValidarData(This.Value) }
ON CHANGE {|| SetConfOFF(This.Value) }
Acho que isto vai resolver.
Abraços,