Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Zwei Listviews parallel scrollen

  Alt 6. Okt 2014, 12:02
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.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat