Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como se hacía para recorrer componentes por su nombre. (https://www.clubdelphi.com/foros/showthread.php?t=90954)

cocute 17-10-2016 16:15:50

como se hacía para recorrer componentes por su nombre.
 
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:

Código Delphi [-]
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


Cita:

Empezado por roman (Mensaje 509626)
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

Cita:

Empezado por cocute (Mensaje 509627)
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

Cita:

Empezado por roman (Mensaje 509626)
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

Cita:

Empezado por newtron (Mensaje 509664)
¿Qué es eso de etiquetar el código? :D:D

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

LineComment Saludos


La franja horaria es GMT +2. Ahora son las 06:54:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi