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.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…