Bevor ich ein Send-/Post-/Message anwenden würde, probiere ich zuerst ob das Control ein Perform beherrscht.
Bevor ich ein Application.ProcessMessages aufrufe, probiere ich ob es ein Begin-/End-/Update beherrscht.
Ungetestet meine Theorie:
Code:
procedure TMainForm.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
TopLine:=...
//
Listbox1.BeginUpdate;
Listbox2.BeginUpdate;
Listbox1.Perform(WM_VSCROLL, MakeLong(LOWORD(SB_THUMBPOSITION), TopLine);
Listbox2.Perform(WM_VSCROLL, MakeLong(LOWORD(SB_THUMBPOSITION), TopLine);
Listbox1.EndUpdate;
Liatbox2.EndUpdate;
end;
Sag ob es funktioniert und ob es was gebracht hat.