Einzelnen Beitrag anzeigen

Gandalfus

Registriert seit: 19. Apr 2003
407 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Eigene listbox mit TObjeklist Scroll problem

  Alt 11. Sep 2006, 14:45
Dein Code ist mir zu unübersichtlich ich kann dir aber sagen wie es allgemein geht.
Das wesentliche ist, das man eine Variable hat in der der erste Sichtbare eintrag gespeichert wird.

zeichnen:
Delphi-Quellcode:
YAnzeigePosition := 2;
for i:=indexdeserstensichtbarenEintrags to (Liste.Count-1) do
begin
  Canvas.TextOut(2,YAnzeigePosition,Liste.Items[i].AnzeigeName);

  YAnzeigePosition := YAnzeigePosition + itemhoehe;

  if YAnzeigeposition > height then break;
end;

//Scrollbalken:
positiondesscrollbalkens.y := ((ermittleheightfuerScrollen) *indexdeserstensichtbarenEintrags) div (Liste.count-(height div itemhoehe));

    Canvas.Draw(positiondesscrollbalkens.x, positiondesscrollbalkens.y, Bilddesscrollbalkens);
Scrollen mit dreisatz:

indexdeserstensichtbarenEintrags := ((Liste.Count-(height div itemhoehe)) * y) div ermittleheightfuerScrollen; y = Position des Mauszeigers (mousemove)
ermittleheightfuerScrollen = Scrollbereich in Pixeln (der Scollbalken geht ja nicht über die gesamte höhe der Komponnete)

zum itemindex scrollen:
indexdeserstensichtbarenEintrags := itemIndex; Es sind noch einige Sicherheitsabrafen notwendig, die ich wegen der Übersichtlichkeit weggelassen habe, aber im wesentlichen war es das.
Besucht doch mal meine Homepage
  Mit Zitat antworten Zitat