Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   buscar componentes (https://www.clubdelphi.com/foros/showthread.php?t=41913)

jzginez 29-03-2007 00:30:53

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

Cita:

Empezado por jzginez
TSpeedButton(FindComponent(Sender.name)).tag

¿Por qué hiciste eso? Bastaba hacer:

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

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

// 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


La franja horaria es GMT +2. Ahora son las 00:35:24.

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