Refactoring des Listenansichts-Steuerelements in Seattle

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Neuerungen in Seattle


Die API der Listenansicht von RAD Studio Seattle wurde umgestaltet. Die Listenansichts- und Listenansichtseintrags-Komponenten wurden in verschiedene Ebenen aufgeteilt, um eine flexiblere Listenansichts-API bereitzustellen, die einfacher erweiterbar ist als in XE8.

Diese Änderungen sollten sich kaum auf Projekte auswirken, die einfach die TListView-Komponente verwenden. Diese Änderungen können jedoch merklichen Einfluss auf Projekte haben, in denen Unterklassen von Listenansichts- oder Listenansichtseintrags-Klassen abgeleitet werden.

TCustomListView wurde in fünf Klassen aufgeteilt

TCustomListView wurde in die folgenden Klassen aufgeteilt, die voneinander erben:

Als Folge dieser Umgestaltung wurden viele Member aus TCustomListView entfernt und den neuen Listenansichts-Klassen neue Member hinzugefügt:

Klasse oder Unit Member von TCustomListView Neue Member
FMX.ListView.TAdapterListView

Protected:

Public:

Protected:

FMX.ListView.TListViewBase

Public:

Protected:

Public:

Protected:

FMX.ListView.TPresentedListView

Protected:

FMX.ListView.TAppearanceListView

Public:

Protected:

Protected:

FMX.ListView.Appearances

Protected:

FMX.ListView.Appearances.TAppearancesRegistry

Protected:

FMX.ListView.Types

Protected:

Außerdem:

TListViewItems wurde in vier Klassen aufgeteilt

TListViewItems wurde in eine neue Unit, FMX.ListView.Adapters.Base, verschoben und in die folgenden Klassen aufgeteilt, die voneinander erben:

Als Folge dieser Umgestaltung wurden die folgenden Member aus TListViewItems entfernt:

Klasse oder Unit Member von TListViewItems Neue Member
TAbstractListViewAdapter

Public:

  • Sort (Früher protected)

Public:

Protected:

TFilterableListViewItems

Public:

Protected:

TAppearanceListViewItems

Public:

Protected:

Protected:

FMX.ListView.Types

Aufgrund dieser Umgestaltung wurden die folgenden neuen Interfaces erstellt, die diese Listeneintrags-Klassen implementieren:

Klasse Interfaces
TListViewItems
TFilterableListViewItems
TAppearanceListViewItems

Klassen für das Objekterscheinungsbild nach FMX.ListView.Appearances verschoben

Die folgenden Klassen wurden in die Unit FMX.ListView.Appearances verschoben:

TListItemObject wurde umbenannt und geändert

TListItemObject wurde in TListItemDrawable umbenannt und ist jetzt nur noch aus Gründen der Abwärtskompatibilität als leere Unterklasse von TListItemDrawable vorhanden.

Zusätzlich wurden die folgenden Änderungen an TListItemDrawable vorgenommen:

TListItemObjectClass wurde nach FMX.ListView.Appearances verschoben und ist jetzt eine Klassenreferenz von TListItemDrawable.

TListItemObjects wurde in TListItemView umbenannt und ist jetzt nur noch aus Gründen der Abwärtskompatibilität als leere Unterklasse von TListItemView vorhanden.

Zusätzlich wurden die folgenden Änderungen an TListItemView vorgenommen:

  • Die Eigenschaft ItemList wurde in ViewList umbenannt. Und deren Sichtbarkeit von protected in public geändert.
  • Die Eigenschaft Objects wurde in Drawables umbenannt.
  • Die Funktion FindObject ist jetzt veraltet, verwenden Sie stattdessen die neue Funktion FindDrawable.
  • Die Funktion ObjectByName ist jetzt veraltet, verwenden Sie stattdessen die neue Funktion DrawableByName.
  • Es wurde eine neue Prozedur, Insert, hinzugefügt.

TListItem wurde geändert

In TListItem:

  • Zwei neue Eigenschaften: Adapter, Index.
  • Die protected FHeaderRef-Felder wurden durch die public Eigenschaft HeaderRef ersetzt.
  • Der Typ TListItemObjectsType wurde in TListItemViewType umbenannt.
  • Die Eigenschaft Objects wurde in View umbenannt.
  • Mit dem Feld FParent können Sie nicht mehr auf das übergeordnete Steuerelement der Eintragsliste zugreifen, die Sie an den Konstruktor übergeben haben.

Weitere Änderungen