TListViewer - Objekt (Unit GVViews)


TListViewer ist der ideale Vorfahre solcher Objekte, deren Aufgabe darin
besteht, den Inhalt von Datenlisten auszugeben, zum Beispiel TListBox. Die
Felder und Methoden, die TListViewer definiert, stellen bereits die
grundlegende Funktionalität solcher Objekte bereit:

* Es bietet ein View-Objekt, das verkettete
Listen von Dateneinträgen darstellen kann.

* Es steuert die Darstellung über eine
Bildlaufleiste.

* Es bietet die Möglichkeit, ein »Fenster«
in zwei Richtungen über einen wesentlichen
größeren Datenbereich zu bewegen.

* Es kann zusammen mit der Bildlaufleiste in
einen Stream gespeichert und daraus wieder
gelesen werden.

* Einträge der Liste können mittels der Maus
oder über die Tastatur selektiert werden.

* Es werden verschieden große Einträge unterstützt.

* Die Objekte können Text und/oder grafische
Elemente enthalten.

TListViewer definiert eine abstrakte Methode GetText, die dazu gedacht ist,
daß das Objekt die darzustellenden Daten anfordern kann. Außerdem wird
die Methode DrawItemText definiert, die einen bestimmten Eintrag
darstellen kann. Sie müssen eine dieser Methoden überschreiben, damit die
Daten in der von Ihnen gewünschten Form ausgegeben werden können.

Das Objekt speichert selbst keine Liste, sondern ist dafür zuständig,
vorhandene Listen (seien es nun Arrays, verkettete Liste oder ähnliche
Datenstrukturen) darzustellen. Seine Nachfahren (TListBox zum Beispiel)
jedoch verwalten Kollektionen mit den Funktionen, die das Objekt TListViewer
bereitstellt.

Felder:
ScrollBar
TopItem (äquivalent)
Focused (äquivalent)
Range (äquivalent)
Flags

Methoden:
Init
Load
ChangeBounds (äquivalent)
Draw
DrawItem
DrawItemText
FocusItem (äquivalent)
GetItemRect
GetItemSubRect
GetPageSize
GetText (äquivalent)
IsSelected (äquivalent)
HandleEvent (äquivalent)
SelectItem (äquivalent)
SetRange (äquivalent)
SetState
Store