In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Recorrer los TEdit de un form

Foro público de Xailer en español
Responder
info
Mensajes: 7
Registrado: Sab Ago 23, 2008 8:22 pm

Recorrer los TEdit de un form

Mensaje por info »

Hola a todos, tengo 20 TEdits en un form (llamados Text0, Text1..Text19) y
necesito recorrerlos todos varias veces para asignarle o quitarle valores,
pero evidentemente, no quiero hacerlo uno por uno, si no que quiero hacerlo
con un for next, pero no me sale.
Sería algo así:
For i = 0 To 19
::Texti:value = nil
Next i
Pero evidentemente no funciona
¿Alguna ayuda?
Gracias
jasm.quitaesto
Mensajes: 420
Registrado: Sab Ago 16, 2008 9:06 pm

Recorrer los TEdit de un form

Mensaje por jasm.quitaesto »

Prueba esto:
For i = 0 To 19
cI := Alltrim( str( nI ) )
::Text&cI.:value = nil
Next i
Saludos
Alf+.
Ramón Torreblanca escribió:
> Hola a todos, tengo 20 TEdits en un form (llamados Text0, Text1..Text19) y
> necesito recorrerlos todos varias veces para asignarle o quitarle valores,
> pero evidentemente, no quiero hacerlo uno por uno, si no que quiero hacerlo
> con un for next, pero no me sale.
>
> Serí­a algo así­:
>
> For i = 0 To 19
> ::Texti:value = nil
> Next i
>
> Pero evidentemente no funciona
>
> ¿Alguna ayuda?
>
> Gracias
>
>
info
Mensajes: 7
Registrado: Sab Ago 23, 2008 8:22 pm

Recorrer los TEdit de un form

Mensaje por info »

Gracias, pero me da error. Al final he recurrido a
for each oControl IN ::aControls
if oControl:IsKindOf( "TEdit" )
oControl:value := nil
...
"José Alfonso Suárez Moreno" <jasm.quitaesto@tpvsoft.com> escribió en el
mensaje news:48b066b7$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Prueba esto:
>
> For i = 0 To 19
> cI := Alltrim( str( nI ) )
> ::Text&cI.:value = nil
> Next i
>
> Saludos
>
> Alf+.
>
>
> Ramón Torreblanca escribió:
>> Hola a todos, tengo 20 TEdits en un form (llamados Text0, Text1..Text19)
>> y necesito recorrerlos todos varias veces para asignarle o quitarle
>> valores, pero evidentemente, no quiero hacerlo uno por uno, si no que
>> quiero hacerlo con un for next, pero no me sale.
>>
>> Sería algo así:
>>
>> For i = 0 To 19
>> ::Texti:value = nil
>> Next i
>>
>> Pero evidentemente no funciona
>>
>> ¿Alguna ayuda?
>>
>> Gracias
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5707
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Recorrer los TEdit de un form

Mensaje por jfgimenez »

Ramón,
> Hola a todos, tengo 20 TEdits en un form (llamados Text0, Text1..Text19) y
> necesito recorrerlos todos varias veces para asignarle o quitarle valores,
> pero evidentemente, no quiero hacerlo uno por uno, si no que quiero
> hacerlo con un for next, pero no me sale.
>
> Serí­a algo así­:
>
> For i = 0 To 19
> ::Texti:value = nil
> Next i
For i := 1 To 20
__objSendMsg( Self, "Text" + LTrim( Str( i ) ) ):Value := Nil
Next
Otra alternativa (que a mí­ me gusta más porque puedes discriminar
exactamente qué controles quieres tratar) serí­a:
LOCAL aControles := { ::Text1, ::Text2, ... }
LOCAL oControl
FOR EACH oControl IN aControles
oControl:Value := Nil
NEXT
Ese array 'aControles' lo puedes rellenar una sóla vez en el evento
OnInitialize y guardarlo como DATA en el formulario para usarlo donde lo
necesites.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
info
Mensajes: 7
Registrado: Sab Ago 23, 2008 8:22 pm

Recorrer los TEdit de un form

Mensaje por info »

Muchas gracias Jose.
"José F. Giménez" <jfgimenez-arroba@wanadoo.es> escribió en el
mensaje news:48b29e91$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ramón,
>
>> Hola a todos, tengo 20 TEdits en un form (llamados Text0, Text1..Text19)
>> y necesito recorrerlos todos varias veces para asignarle o quitarle
>> valores, pero evidentemente, no quiero hacerlo uno por uno, si no que
>> quiero hacerlo con un for next, pero no me sale.
>>
>> Sería algo así:
>>
>> For i = 0 To 19
>> ::Texti:value = nil
>> Next i
>
> For i := 1 To 20
> __objSendMsg( Self, "Text" + LTrim( Str( i ) ) ):Value := Nil
> Next
>
> Otra alternativa (que a mí me gusta más porque puedes discriminar
> exactamente qué controles quieres tratar) sería:
>
> LOCAL aControles := { ::Text1, ::Text2, ... }
> LOCAL oControl
>
> FOR EACH oControl IN aControles
> oControl:Value := Nil
> NEXT
>
> Ese array 'aControles' lo puedes rellenar una sóla vez en el evento
> OnInitialize y guardarlo como DATA en el formulario para usarlo donde lo
> necesites.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
Responder