Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Label - Image - Scrollbox (https://www.clubdelphi.com/foros/showthread.php?t=87725)

shoulder 18-02-2015 05:49:31

Label - Image - Scrollbox
 
hola hice un programa con un scrollbox e image funciona bien pero no logro poner el label del nombre del archivo debajo de cada imagen busque pero no encontre ejemplo. Les paso como lo hice pero no acierto con el label.


Código Delphi [-]
procedure TForm1._CreateImages(imList: TStringList);
var
  im:TImage;
  i,cuentatop:Integer;
  pnl:TPanel;
  lbl: tlabel;
begin

  // Para cada imagen
  for i := 0 to (imList.Count - 1) do begin
    // Crear el control imagen
    im := TImage.Create(nil);
    lbl := TLabel.Create(nil);
    // Asignar propiedades
    im.Parent := ScrollBox1;
   im.Height := ScrollBox1.Height;
    im.AutoSize := True;
    im.Width := im.Height;
    im.Top := 0;
   im.Left := ((im.Width  + 15{panel} + 4) * i);

    im.Transparent := False;
    im.Align := alBottom;
    im.Stretch := True;
    im.Proportional := True;


    // Cargar
    im.Picture.LoadFromFile(imList[i]);

   // lbl.Left  :=  ScrollBox1.Height;;
  //  im.Picture.Bitmap.Canvas.TextOut(Lbl.Left, Lbl.Top,imList[i]);


    // vebto OnClick
  //  im.OnClick := ClickImage;
    // Añadirla a la lista de objetos



    oList.Add(im);



    lbl.Caption := imList[i];
    lbl.Parent := ScrollBox1;
    lbl.Align := alButtom;
   
    oList.Add(lbl);

    // Separados
    pnl := TPanel.Create(nil);
    pnl.Parent := ScrollBox1;
    pnl.Left := im.Left + 5;

    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;

  


end;

Neftali [Germán.Estévez] 18-02-2015 10:28:51

Cita:

Empezado por shoulder (Mensaje 488920)
...pero no logro poner el label del nombre del archivo debajo de cada imagen

Puedes explicar un poco más lo de que "no lo logras"... :(
¿No te sale el Label?
¿No sale en la posición?
¿No sale el nombre del fichero?
¿No sale nada?
¿No sale debajo, pero sale en otro sitio?
...

shoulder 18-02-2015 14:14:35

Image scroll label
 
Hola lo que me estan pidiendo que abajo de la imagen se vea el nombre del archivo ejemplo
arbol.jpeg, o sea con el scroll vertical viene la imagen y abajo de la imagen el nombre del archivo. Llegue a hacer el scroll con las imagenes pero no me sale el nombre del archivo o me salen arriba todos los titulos uno abajo del otro y despues las imagenes o nada. ya probe con imagen.canvas.texout, label.top..etc y nada.
Gracias,

ecfisa 18-02-2015 16:03:46

Hola shoulder.

Te pongo una idea que tal vez te simplifique el mostrado:
Código Delphi [-]
unit Unit2;

interface

uses Classes,StdCtrls, ExtCtrls;

type
  TLabeledImage = class(TImage)
  private
    FLabel: TLabel;
  protected
    procedure Paint; override;
  public
    constructor Create(AOwner: TComponent); override;
    property aLabel: TLabel read FLabel write FLabel;
  end;

implementation

constructor TLabeledImage.Create(AOwner: TComponent);
begin
  inherited;
  FLabel:= TLabel.Create(Self);
end;

procedure TLabeledImage.Paint;
begin
  inherited;
  FLabel.Left:= Left + (Width-FLabel.Width) shr 1;
  FLabel.Top := Top + Height + 5;
  FLabel.Parent:= Parent;
end;
end.

Prueba:
Código Delphi [-]
...
uses Jpeg, Unit2;

procedure TForm1.btnShowClick(Sender: TObject);
var
  lbimg: TLabeledImage;
  i,j,x,y: Integer;
begin
  y:= 10;
  for i:= 1 to 3 do
  begin
    x:= 10;
    for j:= 1 to 4 do
    begin
      lbimg:= TLabeledImage.Create(Self);
      lbimg.Picture.LoadFromFile('delphi.jpg');
      lbimg.aLabel.Caption:= 'delphi.jpg';
      lbimg.Width := 120;
      lbimg.Height:= 120;
      lbimg.Left  := x;
      lbimg.Top   := y;
      lbimg.Stretch:= True;
      lbimg.Parent := ScrollBox1;
      Inc(x, lbimg.Width + 10);
    end;
    Inc(y, lbimg.Height + lbimg.aLabel.Height + 10);
  end;
end;

Muestra:


En las pruebas funcionó bién, pero hice el código sobre la marcha, así que seguramente podrás mejorarlo con algunos ajustes.

Saludos :)

shoulder 18-02-2015 17:48:56

Image scroll label
 
Genio funcionoooo!!.


La franja horaria es GMT +2. Ahora son las 23:52:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi