Se trata de un ejemplo sencillo que puede servir a quien esté comenzando con la creación de componentes en runtime y asignación de eventos. En este caso se trata de un visualizador de imágenes, que crea componentes TImage dentro de un TScrollBox, a modo de miniaturas, para luego visualizar esas imágenes en un control TImage a tamaño mayor.

Se utiliza también una TObjectList para almacenbar los objetos (componentes TImage y TPanel) que se van creando en ejecución para posteriormente poder acceder a ellos. Para crear los componentes se utiliza un código com este:
var
im:TImage;
i:Integer;
pnl:TPanel;
begin
// Para cada imagen
for i := 0 to (imList.Count - 1) do begin
// Crear el control imagen
im := TImage.Create(nil);
// Asignar propiedades
im.Parent := ScrollBox1;
im.Height := ScrollBox1.Height;
im.Width := im.Height;
im.Top := 0;
im.Left := ((im.Width + 15{panel} + 4) * i);
im.Transparent := true;
im.Align := alLeft;
im.Stretch := True;
im.Proportional := True;
// Cargar
im.Picture.LoadFromFile(imList[i]);
// vebto OnClick
im.OnClick := ClickImage;
// Añadirla a la lista de objetos
oList.Add(im);
// Separados
pnl := TPanel.Create(nil);
pnl.Parent := ScrollBox1;
pnl.Left := im.Left + 5;
pnl.Width := 15;
pnl.Height := im.Height;
pnl.Align := alLeft;
pnl.Color := clBlack;
// Aadirlo a la lista de objetos
oList.Add(pnl);
end;
Se puede descargar el código completo del ejemplo desde aquí .
Actualizo el contenido en DropBox.
Este ejemplo ha surgido a partir de este hilo en el ClubDelphi.
Otros ejempos útiles sobre el mismo tema, relacionados con este pueden ser «Crear, mover y redimensionar controles en Runtime (IDE)» o «Crear/destruir comp. en Runtime y moverlas con el ratón«.
Un saludo.










cuelga Andrew Dufresne (Tim Robbins) en 