Consegui fazer que funcione a sua opção de digitar o caracter de espaços e corrigi sobre o BackSpace.
Veja como ficaria:
Function Espaco_Press()
cCmpValue := GetProperty( cFrmName, cCmpName, "Value" )
nCmpPos := GetProperty( cFrmName, cCmpName, "CaretPos" )
cCmpValue += Space(1)
SetProperty( cFrmName, cCmpName, "Value", cCmpValue )
SetWindowText ( GetControlhandle(cCmpName,cFrmName), cCmpValue )
SetProperty( cFrmName, cCmpName, "CaretPos", nCmpPos+1 )
Return .T.
Function Back_Press()
cCmpValue := GetProperty( cFrmName, cCmpName, "Value" )
nCmpPos := GetProperty( cFrmName, cCmpName, "CaretPos" )
cCmpValue := Stuff(cCmpValue,nCmpPos,1,"")
SetProperty( cFrmName, cCmpName, "Value", cCmpValue )
SetProperty( cFrmName, cCmpName, "CaretPos", If(nCmpPos>0,nCmpPos-1,0))
Return .T.
Ahhh econtrei os seguintes bugs no meu código:
- BackSpace está sendo colocado no lugar certo, mesmo no meio do texto
- Aceita Enter para confirmação de senha
- Não para no CheckBox a pressionar TAB
- Reposicionamento da primeira coluna para visualizar o destaque por completo
- Aceita ESC como caminho de saÃda em todas as janelas
Portanto vou pedir mais uma vez atualizar o arquivo na seção de Downloads, por favor e obrigado pela atenção (ante como moderador tornava-se mais fácil pra mim rs).