Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#4

AW: TListBox oder TListView

  Alt 19. Dez 2013, 12:57
Hallo

Da die Komponenten TListBox und TListView doch einige Ähnlichkeiten aufweisen, wollte ich hier mal nachfragen, wann und für welche Darstellungsart ihr die TListBox oder TListView einsetzt?
Welches sind groben die Vor- bzw. Nachteile der beiden Listen?
Luckie hat es schon gesagt, ich will es etwas konkretisieren, weil das mit der Tabelle etwas missverständlich ist.

Also TListBox und TListView haben sehr wenig gemeinsam, im Grunde wie Äpfel und Birnen. Beides Obst. Somit haben auch TListBox und TListView ähnlichkeiten, intern arbeiten sie anders.

TListBox ist im Grunde eine String Liste, wie z. B. TStringList. Nur während TStringList die Daten für die Augen versteckt verwaltet, macht TListBox das öffentlich. Der Unterschied ist also in der Darstellung: sichtbar oder unsichtbar.

Das ist die Standardeinstellung. Mit paar Tricks kann man aber die TListBox so manipulieren, dass man auch Tabellen darstellen kann. Das muss man aber von Hand machen. Es ist nicht wirklich kompliziert, aber man muss sich die Technik aneignen. Somit kann man sagen, TListBox kann gut Listen darstellen, Tabellen nur getrickst. Fügt man ein String hinzu, wird er automatisch angenommen.

Kommen wir zu TListView. Was Luckie gesagt hat von wegen Tabellen, ist evtl. etwas missverständlich. Mit TStringGrid kann man Tabellen gut darstellen. TListView ist etwas mehr. Als erstes kann man sagen, dass das Hinzufügen von neuen Daten nicht so einfach ist. Nicht kompliziert, aber etwas komplexer. Zuerst muss ein TListItem angefügt werden. Der hat einen Caption, also sozusagen die Hauptzelle, und dann jede Menge SubItems, die im Grunde eine TStringList sind. Ich kann somit eine Hauptinfo reinstellen und unendlich viele Nebeninfos (siehe Explorer-Fenster mit Dateinamen und weiteren Infos).

Auch ist die Verwaltung nicht mehr so einfach wie bei TListBox, etwas aufwendiger. Während man bei einer TListBox eine Liste hat und das markierte Item das x-te von Anfang ist, spielt die Reihenfolge bei TListView eher eine untergeordnete Rolle. Jedes Item ist für sich in einer zufälligen Reihenfolge.

Und zuguter letzt, TListView kann Icons pro Item darstellen. Ganz einfach. TListBox kann das nicht, nur mit Tricks.

Abschließend kann man sagen, hast du eine eine einfache String Liste, stellst du sie mit TListBox dar. Hast du eine Tabelle, stellst du sie mit TStringGrid dar. Hast du eine Liste mit weiteren Informationen (siehe Explorer: Datei, Typ, Datum, Attribute, Icon, ...) stellst du sie mit TListView dar.
  Mit Zitat antworten Zitat