La Web del Programador: Comunidad de Programadores
 
    Pregunta:  30538 - MATRIZ DE CONTROLES
Autor:  Francisco Carabaño Salazar
Saludos amigos de la lista. Soy un programador de Visual Basic que tiene deseos de cambiarse a Delphi por las limitaciones que encuentro en el primero. Sin embargo, hay algoi que he extrañado de Visual Basic en mis primeras incursiones al mundo de Delphi. En Visual Basic cuando se copia un control (una caja de texto, por ejemplo) y se trata de pegar el IDE pregunta si se desea crear una matriz de controles. Esto es un arreglo de controles de la misma naturaleza distinguidos, por supuesto, por un índice. Bueno, esta característica me ha permitido siempre escribir código centralizado para manejo de eventos. De hecho, el prototipo de llamada a los procedimientos que manejan los eventos incluye el índice del control como parámetro. De esta manera es fácil crear una estructura de selección múltiple que permite manejar cada control por separado, de acuerdo a su índice. Mi pregunta es: ¿es posible crear matrices de controles, o algo parecido, en Delphi, de manera de poder manejar los eventos también en forma centralizada?
Gracias de antemano.

  Respuesta:  Miguel Lucero
Francisco

Tu problema es común a todos los que pasamos de vb a delphi pero con el tiempo vas a ver que la solución en delphi es más elegante y más avanzada (oop)

En delphi podés compartir un mismo evento (por ejemplo onClick) entre varios controles y haciendo uso del objeto SENDER podés determinar que control causo el evento
Para poder hacer uso de SENDER tenés que hacer un cast (transformación) al tipo de objeto que querés estudiar por ejemplo:

if SENDER is TButton then
if TButton(SENDER).Caption='&Algo' then ...

Podés crear array de controles pero eso lo tenés que hacer en tiempo de ejecución creando un array de un tipo de objeto y luego asignando los eventos etc. pero no es aconsejable

Espero haberte ayudado un poco.