Problemas en Visual Basic 6

Hola a todos estoy realizando un proyecto en vb6 y tengo un par de dudas la primera seria que necesito hacer que al empezar a teclear sobre un textbox que tiene algo escrito me borre ese text ahora lo estoy haciendo al tener foco pero así no me sirve mucho. La otra duda seria al utilizar el empaquetador de vb toda sale bien pero al instalar el programa las subcarpetas que crea son de solo lectura y así no me sirve. Gracias de Antemano

1 respuesta

Respuesta
1
Te puedo ayudar con tu primera inquietud, con la segunda la verdad no sabría decirte cómo cambiar el que no queden las carpetas como Solo lectura.
Bueno, hay dos manera para hacer lo que quieres, la primera es que apenas se haga foco en el campo, se seleccione todo lo que hay en el escrito (como si lo seleccionaras con el mouse) de este modo cuando el usuario escriba va a borrar lo que hay en el o también tiene la opción de solo modificarlo ya que si quiere puede desplazarse dentro del texto quitando así la selección y solo modificaría. Para seleccionar deberías usar este código en el evento setfocus
Me.TextBox.SelStart = 0
Me.TextBox.SelLength = Len(Me.TextBox)
Me. TextBox. SetFocus
La otra opción obligaría a que siempre se borre, es decir que el usuario no podría reemplazar parte del texto si no que siempre tendría que partir de cero.
En esta forma yo pondría en el evento setfocus que borre el texto, pero tu dices que no te sirve, por lo que entiendo requieres que sea al teclear (la primera tecla oprimida). Así que pondría en el evento keypress a que almacene el carácter que acaban de oprimir (keyascii) en una variable temporal, luego que borre TODO el texto, posteriormente vuelva a poner el carácter que ya escribió el usuario y de este modo el usuario solo verá que al comenzar a escribir se quita lo que hay pero queda lo que el escribe. Requieres usar una bandera para que esto suceda solo la primera vez que oprimen una tecla en el campo o de lo contrario siempre te borraría y te dejaría un solo carácter en el textbox. Sería algo así.
Arrancas el form con una bandera en 0 (o también la puedes poner en 0 cada vez que haya setfocus si requieres que esto se repita varias veces)
En el evento keypress pondría:
If bandera = 0 then 
TempChar = Keyascii // para que se almacene el ascii del caracter que acaban de oprimir textbox.text="" // para borrar el texto (incluyendo el caracter que acaba de digitar el usuario).
SendKeys TempChar, True //para que vuelva a poner el carácter que escribió el usuario
Bandera=1 // para que no repita esto cada vez que se digite un carácter
end if 
El caso anterior es útil si el usuario comienza a escribir en cualquier parte de la cadena existente en el textbos, pero si el usuario siempre digita al final es más sencillo, usas lo mismo de la bandera, pero reemplazas así:
textbox.tex=right(me.textbox,1) // de este modo elimina todo lo que hay en el textbox menos el último caracter de la derecha.
De verdad muchísimas gracias por tu ayuda aunque ya lo había resuelto con la primera opción que diste la de seleccionar abrí otra pregunta y me dieron la misma idea. Ahora el problema que tengo es distinto y es con el installshield necesito que al comenzar la instalación me detecte la presencia de un programa como por ejemplo el adobe reader y sino lo encuentra me lance el instalador. La primera parte ya logre realizarla solo me falta que lance el instalador.
Lo siento, para este segundo caso si no podría ayudarte, no uso generalmente este tipo de condicionales en la instalación, lo que suelo hacer es validar este tipo de requerimientos apenas se ejecuta el programa por primera vez, con eso lo puedo hacer desde el código de VB.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas