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