Limpiar textbox

Hola a todos los expertos soy nuevo en esto de la programación en fox pro y mi duda es la siguiente: hay alguna instrucción para limpiar el contenido de los textbox en un formulario, es decir que al hacer clic en un botón de comando borre el contenido de todos los textbox en el formulario. Gracias.

1 respuesta

1
Respuesta de
Hola, espero poder ayudarte..
Si todos los textbox llevan el mismo tipo de dato podes usar el método setAll del formulario, así:
Thisform.setAll('value','','textbox')
Ahora, si algunos son numéricos y otros tipo carácter, ahí podríamos hacer algo así..
for cnt=1 to thisform.objects.count
do case
case type('thisform.objects(cnt).value')='C' and thisform.objects(cnt).class='Textbox'
thisform.objects(cnt).value=''
case type('thisform.objects(cnt).value')='N' and thisform.objects(cnt).class='Textbox'
thisform.objects(cnt).value=0
Endcase
Endfor
podrias simplicar el codigo con la funcion icase() en lugar de hacer do case, pero no todas las versiones de fox tiene esa funcion..
No uses el método resetToDefaul de los objetos, puesto que este método establece para todos los values el valor por defecto, no el valor inicial.
Espero haberte ayudado y si es así, espero que cierres la pregunta y la califiques..
Gracias
Keystone - Christian
Hola gracias por tu ayuda. La primera forma que me diste si funciona muy bien aunque en mi formulario si tengo 3 textbox con datos numéricos, pero también los limpia. La segunda forma la escribí tal cual pero al ejecutarlo me marca un error en la primera linea del for. Ahora con respecto a los 3 textbox numéricos uno de ellos me debe mostrar el resultado de multiplicar los dos anteriores y aquí me he topado en varios aprietos. Trate de escribir en la propiedad gotfocus algo como:
thisform.txtResultado.value = thisform.txtDato1.value * thisform.txtDato2.value
pero no logro que funcione. agradeceria mucho tu valiosa ayuda. gracias.
Sigo porque presioné responder por error..
Bueno, con respecto al textbox con un resultado tendrías que poner ese mismo texto en los 3 textboxs pero en el método valid.
Para hacerlo de una manera más prolija y no repetir código, te conviene crear un método "calcula" en el formulario con el texto:
thisform.txtResultado.value = thisform.txtDato1.value * thisform.txtDato2.value
tambien podes ponerle algun rendondeo asi no tenes problemas de formato:
thisform.txtResultado.value = round(thisform.txtDato1.value * thisform.txtDato2.value,2)
Y en los valid de cada textbox escribís:
Thisform. Calcula()
Bueno, espero el texto del error pero probá dentro de un botón o un método en el formulario..
Saludos
Keystone - Christian
Hola..
Con respecto al segundo método, si está dentro de un botón debería funcionar sin problemas. Ahora si esta adentro de un prg, no va a funcionar.. si quieres pásame el texto del error que esta en la ventana cuando te aparece el error.
Hola disculpa las molestias pero he tratado lo que me indicas para la operación de multiplicar 2 cantidades en 2 textbox y que aparezca en en un 3er textbox pero me marca un error y lo único que veo es una esquina de la ventana del depurador puesto que el formulario siempre queda arriba. Por favor indicame si tengo que modificar alguna propiedad en tiempo de diseño o instalar algo. Estoy usando visual foxpro 6.0.gracias
Con respecto a lo anterior me marca un error de: "no coinciden los tipos".
Hola.
Bueno.. el error es porque algunos de los textBoxs no es numérico..
Al blanquearse los datos, se ponen todos tipo caracteres por más que introduzcas números..
Verifica que en cada textbox, dentro de las propiedades, en donde dice "value" que este 0 (cero) en los textbox numéricos.
Si no son muchos los textbox del formulario, en el init podes poner..
with thisform
.textbox1.value=0
.textbox2.value=''
...
endwith
O haces un método que se llama blank en el formulario, escribís lo anterior y llamas al método thisform.blank() en el init del formulario y en el botón de blanquear formulario..
Espero que funcione
Y sigo a tu disposición
Keystone - Christian
Hola muchas gracias por tu valiosa ayuda me ha sido muy útil. Ahora tengo otra duda si en la ventana de código quiero poner un parte de código en varias lineas pero que se ejecute como una sola como debo hacer, ¿existe algún operador para concatenar las lineas?. Gracias
Hola
mira, se usa el ;
Por ejemplo:
brow field codigo, descrip;
for ...
Cuando pones enter después de ; no hace nada..
¿Qué te parece si cerras esta pregunta y me haces la nueva, la de la ventana comando, así me genera más puntos..?
Me parece justo porque son dos preguntas..
Gracias - Keystone
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema Visual Fox Pro o hacer tu propia pregunta: