mam taki problem: otoz mam TListview na formie , ukrylem sobie scrollbary,
i wkleilem wlasny ( scrollbar oskinowany) pionowy i w event OnChange
napisalem:
procedure TForm2.VsSlider1Change(Sender: TObject);
var I:word;
begin
if VsSlider1.Position>vstmp then
for i:=1 to Vsslider1.Position-vstmp do
listview1.Perform(WM_VSCROLL,SB_LINEUP,0);
if VsSlider1.Position<vstmp then
for i:=1 to vstmp -VsSlider1.Position do
listview1.Perform(WM_VSCROLL,SB_LINEDOWN,0);
vstmp:=vsslider1.Position;
end;
ale to jest za wolne np. gdy mam np. 300 itemow to musze czekac jak przewija listview kilka sekund !!!
wiec sprobowalem czegos takiego:
procedure TForm2.VsSlider1Change(Sender: TObject);
begin
setscrollpos(Listview1.handle,SB_VERT,vsslider1.position,true);
end;
ale nic sie nie dzialo (z lista)
odkrylem sobie pionowy scrollbar
i setscrollpos dziala ale tylko pozycja scrollbara sie zmienia
a lista "stoi w miejscu" :(
nie wiem co zrobic zeby itemy wyswietlaly sie zgodnie z pozycja scrollbara :(
troche duzo sie rozpisalem ale mam nadzieje ze mnie zrozumiecie :)
moze ktos juz wie jak to zrobic? :)
moim zdaniem mozna jeszcze symulowac zdarzenie onClick lub OnMouseDown na scrollbarze (tylko nie wiem jak :)) bo po kliknieciu na zmieniony scrollbar itemy sie dobrze "ukladaja" :)
--
--<<[ pzdr ]>>--