habs geschaft nach reichlicher überlegung bin ich zur einer lösung gekommen:
ich weiß ja wie viele items im sichtbereich sind, ich habe meine liste mit objekten und jetzt habe ich einen gruppenindex und das ist das entscheidene wenn in meinen fall kann ich 6 items sehen, wenn ich da jetzt z.b. 0 hinschreibe sehe ich dank der forschleife nur die 0-6 items wenn ich da 6 hinschreibe sehe ich nur von 6-12 und soweiter problem ist im moment noch mit angefangen seiten das muss ich noch mitberücksichtigen aber ich denke der weg ist klar. vielen dank für den tip mit dynamischen y positionen.
hier der qullcode(nur das wesetnliche)
Delphi-Quellcode:
procedure Tmylistbox.Draw;
var
i,y:Integer;
s:String;
begin
// gruppencount:=Round((items.Count-1)/20);
y:=0;
for i:=gruppenindex to gruppenindex+displaycount do begin
s:='';
with TmyListItem(items.items[i]).Caption do begin
if isSel = true then
s:='*';
DrawCaption(s,0,posy+y);
inc(y,20);
end;
end;
end;