Thema: Delphi Scrollbar

Einzelnen Beitrag anzeigen

Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Scrollbar

  Alt 31. Mai 2008, 11:51
Hi,

eine eigene Komponente, welche eine Listbox darstellt, enthält zwei Variablen: Sichtbar1 und Sichtbar2. Diese beiden Variablen beziehen sich auf die Stringlist Items. Items enthält wie bei einer normalen Listbox die Einträge. Sichtbar1 ist also der oberste zu sehende Eintrag und Sichtbar2 der unterste zu sehende (die beiden Variablen sind sozusagen Indizes zu Items). Ich habe auch eine eigene Scrollbar. Die Scrollbar hat als Max die Anzahl der Einträge der Listbox. Mit MouseMove der Scrollbar möchte ich die Scrollbar zum laufen kriegen. Als relevante Angaben hat man folglich den Y-Wert der Maus in Pixeln (umgerechnet auf die ScrollBar), die Höhe der Scrollbar in Pixeln, den Max-Wert in der Dimension der Einträge -> keine Pixelangabe. Theoretisch könnte man daraus folgendermaßen Sichtbar1 (lokal auch als Pos bekannt) berechnen: (Y/Height)*Max (<- Klammern nur zur Vereinfachung). Nun stellt sich allerdings die Frage, wie man die Position des Reglers der Scrollbar in Pixeln berechnen könnte. Mir ist außerdem noch sehr wichtig, dass die Scrollbar ein normales verhalten zeigt: Je nach Eintragsanzahl soll sie Sprünge machen.
Ich habe mir zwar Mühe gegeben, alles möglichst einfach zu erklären, aber um nochmal sicher zu gehen, dass es jeder verstanden hat, habe ich im Anhang ein Projekt mit dem ihr selbst experimentieren könnt. Falls Missverständnisse vorliegen, sollte dieses auch noch helfen. Die drei Anmerkungen in den ersten Zeilen der code.pas (frmMain) sind sehr hilfreich. Viele Units werden nur derzeit benötigt und in Zukunft wegfallen, sie sind alle irrelevant für euch (außer euch interessiert das umständliche Laden von PNGs und anderen für euch unwichtigen Mist), daher sind diese Anmerkungen sehr hilfreich. In der MouseOver der SkinTrackBar in uSkinDraw seht ihr meinen Versuch. Er funktioniert allerdings nicht einmal annähernd. (Ich benötige keine Hinweise zum Laden von PNGs, da ich das demnächst endgültig beseitigen werde.)
Angehängte Dateien
Dateityp: zip projekt_334.zip (499,2 KB, 36x aufgerufen)
  Mit Zitat antworten Zitat