El Alltrim(x) para mi saca todos los espacios que existen en la cadena. Si el valor que "tipie" en el get fue un espacio, a ese espacio tambien lo saca. Es por ese mi problema.
Después en tu código (finalizado el DIALOG) puedes comprobar si la longitud del GET es superior a '0' (ó a '1' ó al valor que desees controlar) y si además 'nEspacios' vale '1'. A partir de ahí lo que quieras. No me he planteado como resolver si borra las teclas pulsadas antes de finalizar el DIALOG, pués 'nEspacios' podría tener un valor que no fuese cierto.
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
PAra mi es un tema que deberian de tomarlo en cuenta para las proximas salidas del xharbour o harbour.
porque pasan varias cosas cuando tenes que inicializar las variables, entre ellas esto:
una variable inicializada con un valor queda definida por el tamaño de la misma y no por la que uno desea. Ej: v:= space(30) v:= "hola"
en el primer caso el maxlen es 30, en el segundo es 4. deberia de poder definirse el maxlen y cuando se le pase un valor que no lo cambie, esto ocurre (me) cuando tengo que leer un dato desde una DB, si el codigo existe, a "V" le paso el valor de la DB y ahi queda definida el maxlen y deberia de poder decirle que el maxlen es 30 no el tamaño del dato.
las variables deberian (con respecto a los get) de poder inicializarse y que esos valores no sean espacios
Hay una cuestión de definición. No hay un espacio predefinido y otro mecanizado, los dos son Chr(32) Si Chr(32) es válido, rellená la variable con otro caracter no válido. En consola el Chr(255) no es visible, por lo que yo tomaría como valor inicial
v:= Replicate( Chr(255), 4 ) // Donde 4 es el largo que tiene que tener el get. @get ...... PICTURE '@K XXXX' // El @K borra la variable si el usuario teclea algo, quedando en
valid v != Replicate( Chr(255), 4 )
mientras el usuario no tipea nada, la variable será igual a Replicate( Chr(255), 4 ), en cuanto teclee algo, incluyendo un espacio, ya se volverá lo digitado, estirado hasta la longitud, que en el ejemplo es 4.