Ver Mensaje Individual
  #2  
Antiguo 12-05-2022
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Reputación: 25
egostar Va camino a la fama
Hola, debes hacer uso del evento OnViewPortPosition de los ListBox.

Agrega dos ListBox y un boton a la forma, en el ejemplo solo asigno el evento al ListBox2 y cuando te desplazas verticalmente se ve el efecto.

Código Delphi [-]
unit Unit2;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation,
  FMX.StdCtrls, FMX.Layouts, FMX.ListBox;

type
  TForm2 = class(TForm)
    ListBox1: TListBox;
    ListBox2: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure ViewPortPositionChange(Sender: TObject; const OldViewportPosition,
                          NewViewportPosition: TPointF; const ContentSizeChanged: Boolean);
  end;

var
  Form2: TForm2;

implementation

{$R *.fmx}

procedure TForm2.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to 20 do
  begin
    ListBox1.Items.Add(Format('%d',[I*12]));
    ListBox2.Items.Add(Format('%d',[I*15]));
  end;
  ListBox2.OnViewportPositionChange := ViewPortPositionChange;
end;

procedure TForm2.ViewPortPositionChange(Sender: TObject; const OldViewportPosition,
  NewViewportPosition: TPointF; const ContentSizeChanged: Boolean);
var
  P: TPointF;
begin
  P := ListBox1.ViewportPosition;
  P.Y := ListBox2.ViewportPosition.Y;
  ListBox1.ViewportPosition := P;
end;

end.

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita