PDA

Ver la Versión Completa : buscar componentes


jzginez
29-03-2007, 00:30:53
Hola amigos tengo varios SpeedButton los cuales tiene dicerentes nombres pero en la propiedad tag los fui numerando conforme los necesito, hice un solo procedimiento general para el evento click del boton donde mas o menos tengo algo asi:

case TSpeedButton(FindComponent(Sender.name)).tag
1:.......
2:.......
3:.......
End;


pero ahora lo que requiero es al reves es decir ahora lo que conosco es un número y quiero saber el nombre del botón que tiene ese tag, alguien me puede decir si existe alguna función para lograr esto o si lo que tengo que hacer es un ciclo para encontrar este botón.

Gracias

roman
29-03-2007, 01:01:04
TSpeedButton(FindComponent(Sender.name)).tag

¿Por qué hiciste eso? Bastaba hacer:


case TSpeedButton(Sender).tag
1:.......
2:.......
3:.......
End;


Te ahorras la búsqueda con FindComponent cada vez que llames al evento.

En cuanto a lo que quieres ahora, lo veo un poco difícil. Vamos, que no vislumbro otro método que hacer un recorrido por todos los componentes del formulario que sean SpeedButton hasta encontrar el deseado:


for I := 0 to ComponentCount - 1 do
if (Components[I] is TSpeedButton) and (Components[I].Tag = ElTagBuscado) then
ShowMessage('Encontrado');


Pero, en general, si se tiene que acceder a un grupo de controles así, yo optaría por establecer un arreglo de controles desde un principio, similar a lo que digo aquí (http://www.clubdelphi.com/foros/showthread.php?t=41910).

// Saludos

jzginez
29-03-2007, 18:21:07
Hola Roman gracias por tu respuesta, probare lo que me recomiendas, en cuando al ejemplo que puse realmete se me ocurio en el momento de escribir este tema por eso la instrucción quedo medio rara pero solo era para ayudar a segun yo dar una mejor idea de lo que hago y quiero hacer.


Gracias