Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > FireMonkey
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-07-2020
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Elementos de un TScrollBox

Buenas tardes o noches o días, según donde estemos.

Estoy haciendo pruebas con un TMultiView por que me gustó la idea de hacer un proyecto en varias capas o diferentes vistas y agregarlas como si fueran todas una a medida que las vaya necesitando-

La cuestión es que tengo un TForm y un TMultiView al cual le agregué un TScrollBox.
Mediante un código le agrego varios TImage al TScrollBox y no sé como hacer para obtener el elemento que está scrolleando o capaz que no haya elemento que esté scrolleando pero me gustaría que un elemento de ese TScrollBox sea seleccionado cada vez que haga para arriba o para abajo y si lo tuviese en horizontal cada vez que haga de izquierda a derecha.

Les pongo el código que tengo para poner los TImage que es lo único que logré hasta ahora.

Código Delphi [-]
procedure TForm1.btn1Click(Sender: TObject);
var
aImage : array [0..15] of TImage;
i,j : Integer;
begin

for i  := 0 to Length(aImage) - 1 do
  begin
    aImage[i] := TImage.Create(nil);
    //aImage[i].Parent := ScrollBox1;
    ScrollBox1.Content.AddObject(aImage[i] as TImage);
    aImage[i].MultiResBitmap.Add.Bitmap.LoadFromFile
    ('d:\TEMP\' + i.ToString + '.png');
    aImage[i].WrapMode := TImageWrapMode(2);
    aImage[i].Margins.Left := 0;
    aImage[i].Margins.Right := 5;
    aImage[i].Margins.Top := 5;
    aImage[i].Margins.Bottom  := 5;
    aImage[i].Visible := true;
    aImage[i].Align := TAlignLayout(1);
    aImage[i].Tag := i;
    ScrollBox1.RealignContent;
  end;
  ScrollBox1.SetFocus;

 //j := ScrollBox1.Content.Controls.Count ;
 //ShowMessage(j.ToString);

end;


Mi idea es pintar el elemento que quede en el medio del TScrollBox y que sea el seleccionado cada vez que muevo los TImage para algún lado, pero no hay nada que sea Item o ItemIndex que me sea útil como para saner qué elemento es el central.
Creo que lo que sea que tengo que hacer iría en el evento OnPaint del TScrollBox pero hasta ahí llego.

Alguien que conozca del tema?
Responder Con Cita
  #2  
Antiguo 01-08-2020
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Igual voy a decir alguna tontería, pero, como tú dices, no habiendo algo como un "CentralItemIndex", ¿acaso pudiera hacerse mediante sencillos cálculos? Seguro que lo has pensado... me refiero a usar el "VertScrollBar.Position" y/o el "HorzScrollBar.Position", que, te dice la posición de las "barras de scroll". Con las dimensiones de los elementos dentro del "scrollbox" y estas propiedades "Position", tal vez sea posible calcular (con cierto margen) qué elemento está "centrado" en el "scrollbox".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 01-08-2020
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Hola a todos,

Igual voy a decir alguna tontería, pero, como tú dices, no habiendo algo como un "CentralItemIndex", ¿acaso pudiera hacerse mediante sencillos cálculos? Seguro que lo has pensado... me refiero a usar el "VertScrollBar.Position" y/o el "HorzScrollBar.Position", que, te dice la posición de las "barras de scroll". Con las dimensiones de los elementos dentro del "scrollbox" y estas propiedades "Position", tal vez sea posible calcular (con cierto margen) qué elemento está "centrado" en el "scrollbox".
Probé pero el position me mueve el control de lugar.
Igualmente hoy voy a seguir probando más cosas a ver si le encuentro la vuelta.
Responder Con Cita
  #4  
Antiguo 01-08-2020
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Hola a todos,

Igual voy a decir alguna tontería, pero, como tú dices, no habiendo algo como un "CentralItemIndex", ¿acaso pudiera hacerse mediante sencillos cálculos? Seguro que lo has pensado... me refiero a usar el "VertScrollBar.Position" y/o el "HorzScrollBar.Position", que, te dice la posición de las "barras de scroll". Con las dimensiones de los elementos dentro del "scrollbox" y estas propiedades "Position", tal vez sea posible calcular (con cierto margen) qué elemento está "centrado" en el "scrollbox".
Listo.
Era el método ScrollBy(const dx, dy : single);

dx positivo mueve para derecha y negativo mueve para izquierda.
dy positivo mueve para arriba y negativo mueve para abajo.

GRacias por la idea!!!!!
Responder Con Cita
  #5  
Antiguo 01-08-2020
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por MaxiDucoli Ver Mensaje
Listo.
Era el método ScrollBy(const dx, dy : single);

dx positivo mueve para derecha y negativo mueve para izquierda.
dy positivo mueve para arriba y negativo mueve para abajo.

GRacias por la idea!!!!!
¡De nada! Me alegro si te sirvió.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Scroll en componente TScrollBox cmfab Varios 20 22-10-2013 19:38:31
Scroll automático en TScrollBox. Lord Delfos Varios 0 28-10-2008 18:08:38
propiedad Canvas de TScrollBox islu Varios 2 13-06-2007 10:04:32
Problema con TScrollBox madmai Varios 2 10-10-2005 22:21:13
Agregar controles a un TScrollBox fraguillen Gráficos 1 07-05-2003 23:32:28


La franja horaria es GMT +2. Ahora son las 17:30:42.


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