Musst einfach das Event abgreifen und es an das andere Control schicken:
Delphi-Quellcode:
type
TListView =
class(ComCtrls.TListView)
private
fLinked: TListView;
protected
procedure WMVScroll(
var Message: TWMVScroll);
message WM_VSCROLL;
public
property Linked: TListView
read fLinked
write fLinked;
end;
procedure TListView.WMVScroll(
var Message: TWMVScroll);
var
vpos1, vpos2: Integer;
begin
inherited;
if Assigned(fLinked)
then
begin
vpos1 := GetScrollPos(
Handle, SB_VERT);
vpos2 := GetScrollPos(fLinked.Handle, SB_VERT);
if vpos1 <> vpos2
then
fLinked.Perform(LVM_SCROLL, 0, vpos1 - vpos2);
end;
end;
Das behandelt aber nun nur das Scrollen über den Scrollbalken und nicht über Tastatur oder Mausrad.