Crear componentes en un TScrollBox (runtime)
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.