Ayuda Con Ciclo


Objetivo: Ayuda Con Ciclo
Hola.....!!! soy nuevo jejejejeje Espero me Puedan Ayudar...!

Básicamente lo que quiero es resumir el código de limpieza de un formulario, tengo una función que se llama limpiar


PUBLIC SUB limpiar()
DIM i AS Integer

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""

END

y lo que Quiero Hacer es algo como esto para ahorrar lineas de programación pero no me funciona, alguien sabe que estoy haciendo mal?

PUBLIC SUB limpiar()
DIM i AS Integer

FOR i = 1 TO 8
TextBox & Str(i) & .Text = ""
i = i + 1
NEXT

END

Espero de su Ayuda Gracias de Ante Mano.......!

Nota en la siguiente Linea:

TextBox & Str(i) & .Text = "" '<- me da Este Error: Syntax Error. Point syntax used outside of WITH/END WITH

Perfil MP  
Ayortano
Objetivo: Re: Ayuda Con Ciclo
No sé si ya lo han respondido en otro tema, pero puedes hacen un TextBox[], y recorrerlo. Así:

Código: [Descargar] [Ocultar]
  1. Public Sub ClearTxtBoxes()
  2.  
  3.  Dim hola As TextBox[], i As Integer
  4.  
  5. hola = New TextBox[]
  6. hola = [TextBox1, TextBox2, etc]
  7.  For i = 0 To hola.max
  8. hola[i].clear()
  9.  Next
  10.  
  11. End


Ahora bien, si comparten el mismo contenedor, y justamente quieres limpiar todas las de éste...

Código: [Descargar] [Ocultar]
  1. Public Sub ClearTxtBoxes()
  2.  
  3.  Dim i As Integer
  4.  
  5.  For i = 0 To Contenedor.Children.Count - 1
  6. If (Object.Class(Contenedor.Children[i]).Name = "TextBox") Then
  7. Object.Call(Contenedor.Children[i], "Clear")
  8. Endif

  9.  Next
  10.  
  11. End

Objetivo: Re: Ayuda Con Ciclo
Gracias....!! Ayortano

Aqui te dejo algo que Consegui.... creo que es un poco mas Sencillo....! Salu2....!

PRIVATE SUB borrar_textbox(formulario AS form)
DIM Ctrl AS Object
'Cada formulario tiene asociada un colección llamada Controls.
FOR EACH Ctrl IN formulario.Controls
'En cada iteración a Ctrl le es asignado uno de los elmentos de Controls,
'es decir una referencia a un control del formulario.
IF Ctrl IS TextBox THEN Ctrl.Clear
NEXT
END SUB


y simplemente lo llamo asi:

borrar_textbox(senso) 'donde senso es el Nombre del Formulario

última edición por jesusdaredevil el Lunes, 04 Abril 2011, 01:41; editado 1 vez
Perfil MP  
Objetivo: Re: Ayuda Con Ciclo
Interesante solucion....

Saludos

Objetivo: Re: Ayuda Con Ciclo
Bienvenido a la comunidad.

Pues si, la solución es bastante buena y nos recuerda el uso del For Each que a veces lo tenemos olvidado.
Es perfecto para este caso.

Objetivo: Re: Ayuda Con Ciclo
Volviendo al ejemplo.

Si declaras la variable objeto Ctrl como TextBox, estas diciendo la clase de objeto que quieres que sea.
A la hora de comparar en el "IF Ctrl is TextBox" en vez de .Clear, puedes ver en la lista desplegable todas las propiedades del control.
En este caso .Clear o .Txt=""

Si lo haces de la otra manera no sabes realmente lo que puedes poner.

Objetivo: Re: Ayuda Con Ciclo
Re-contras...

Pues no, si hago eso, me esta pidiendo una caja de texto y le paso un formulario.
Ale, por aprendiz de brujo.

Es que me gusto mucho tu ejemplo.La prisa no es buena consejera.


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.2094s (PHP: -36% SQL: 136%)
Consultas SQL: 29 - Debug off - GZIP Activado