PDA

Ver la Versión Completa : como se hacía para recorrer componentes por su nombre.


cocute
17-10-2016, 16:15:50
vamos imaginad que tengo 20 componentes Tedit y quiero cambiar a todos el width.
Edit1, edit2,......... Edit20

como hago para hacer esto sin tener que ir uno por uno,
vamos algo como esto para que me entendais pero funcional
for x:=1 to 20 do
begin
edit[x].width= 10;
end;

(sin afectar al resto de Tedits)

AgustinOrtu
17-10-2016, 16:31:57
Guarda los TEdit en algun contenedor (Array, Lista, etc)
Itera el contenedor y modifica las propiedades que te interesan

Delphius
17-10-2016, 16:44:59
Déjame ver si entiendo.
Tienes X cantidad de edits, de los cuales Y < X son a los que quieres modificar.

De poder se puede, pero tal algoritmo sugiere esto:

for i := 0 to Components.Count - 1 do
begin
if (Components[i] is TEdit) and EsModificable(Components[i])
then TEdit(Components[i]).Width := Valor;
end;

La función EsModificable() de alguna forma tiene una implementación tal que determina si el TEdit en cuestión es de los "permitidos" a tocar.

Si se analiza objetivamente esto, entenderás que es un desperdicio. Si ya tienes una forma de identificar cuales son los permitidos (y que de una u otra forma, ya previamente se los ha identificado y establecido que serán los que se podrán modificar), simplemente trabajemos con esa lista.

Entonces lo que sugiere Agustín es realmente válido. Armas un array en el que se tenga asignado estos permitidos y se trabaja con eso. Al array lo puedes crear en tiempo de ejecución en el OnCreate(), o el evento que tu consideres más apropiado.

Saludos,

roman
17-10-2016, 16:45:07
Compañero cocute, ¿350 mensajes y todavía no etiquetas tu código? :eek:

LineComment Saludos

cocute
17-10-2016, 17:01:14
Gracias a todos por responder


Compañero cocute, ¿350 mensajes y todavía no etiquetas tu código? :eek:

Si te fijas no era un código valido, era por explicarme, lo pondría etiquetado pero no me deja editar el mensaje.

Casimiro Notevi
17-10-2016, 17:04:10
Si te fijas no era un código valido, era por explicarme.... Es código ;)
No lo olvides para la siguiente :)

newtron
18-10-2016, 09:52:01
Compañero cocute, ¿350 mensajes y todavía no etiquetas tu código? :eek:

LineComment Saludos

¿Qué es eso de etiquetar el código? :D:D

roman
18-10-2016, 15:26:46
¿Qué es eso de etiquetar el código? :D:D

Ni idea. Pero es lo que siempre dice Casmiro :D

LineComment Saludos