hallo marabu
invalidate hat nichts gebracht, hatte ich schon versucht, da man ja generell neu zeichnen sollte. habe invalidate direkt vom control(listbox) aufgerufen, deren inhalt über die scrollbar scheinbar(?) verschoben worden ist.
zu testzwecken habe ich mir das scrollbar von der listbox mitanzeigen lassen, das läuft parallel zu meiner eigenen scrollbar, wie gewünscht.
Inhalt wird leider nicht weiterangezeigt.
hier ein Beispiel:
Damit setze ich die werte meiner scrollbar
Delphi-Quellcode:
var
sinfo:tagSCROLLINFO;
begin
FillMemory(@sinfo, SizeOf(sinfo), 0);
sinfo.cbSize:=SizeOf(sinfo);
sinfo.fMask:=SIF_ALL;
GetScrollInfo(self.lst1.Handle, SB_VERT, sInfo);
self.scrlbr1.SetParams(sinfo.nPos, sinfo.nMin, sinfo.nMax);
self.scrlbr1.PageSize:=sinfo.nPage;
damit versuche ich zu ersteinmal scrollen.
Delphi-Quellcode:
procedure TForm1.scrlbr1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
var
r:TRect;
begin
r:=lst1.ClientRect;
ScrollWindowEx(lst1.Handle, 0, ScrollPos+1, 0, @r, 0, 0,SW_SCROLLCHILDREN);
lst1.Invalidate;
end;
wäre klasse wenn mir jemand sagen könnte, wie man die listbox (lst1) einfach scrollen könnte.
vielen dank für die hilfe
PS: der wert der scrollpos ist nicht korrekt, soll hier nur ein beispiel sein.