Inicio > Delphi, Ejemplos, Fácil > Crear componentes en un TScrollBox (runtime)

Crear componentes en un TScrollBox (runtime)

martes, 26 de octubre de 2010 Dejar un comentario Ir a comentarios
Share Button

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:

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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.

Share Button
Categories: Delphi, Ejemplos, Fácil Tags: ,
  1. casimiro
    martes, 26 de octubre de 2010 a las 16:57 | #1

    Qué buena pinta tiene el programa, es un auténtico tutorial práctico para quien busque temas como este de la creación de componentes en runtime.

  2. Darkblue
    martes, 6 de diciembre de 2011 a las 19:06 | #2

    ¿existe alguna funcion del tipo zoom?, muy bueno tu aporte

  3. Neftalí
    miércoles, 7 de diciembre de 2011 a las 11:03 | #3

    @Darkblue
    Hola Darkblue. En el componente no, ya que está más enfocado a las miniaturas que a la propia imagen, pero seguro que puedes encontrar en Internet código que puedas aplicar a a imagen (componente TImage) para simularlo.

    Un saludo.

  4. Mauricio
    lunes, 11 de febrero de 2013 a las 02:21 | #4

    Hola Neftalí, gracias por tu aporte, como se haría para que las miniaturas estuvieran al lado izquierdo o derecho y las mostrara verticalmente. Gracias.

  5. Neftalí
    lunes, 11 de febrero de 2013 a las 09:28 | #5

    Hola Mauricio.
    En el código que tienes en la parte superior basta con que cambies la alineación de los controles y que calcules la posición de los componentes “img” para que aparezcan en vertical.

    Un saludo.

  1. lunes, 22 de noviembre de 2010 a las 00:56 | #1
What is 22 + 11 ?
Please leave these two fields as-is:
IMPORTANTE! Para continuar, debes contestar la pregunta anterior (para evitar SPAM) :-)