Refactoring du contrôle vue liste dans 1.17

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Nouveautés


L'API de la vue liste Appmethod 1.17 a été refactorisée. Les composants vue liste et élément de vue liste sont divisés en différentes couches afin de fournir une API de vue liste plus flexible et facile à étendre que dans 1.16.

Ces modifications devraient à peine affecter les projets qui utilisent simplement le composant TListView. Toutefois, ces modifications peuvent affecter notablement les projets qui sous-classent une classe vue liste ou élément de vue liste.

TCustomListView a été divisée en cinq classes

TCustomListView a été fractionnée dans les classes suivantes qui héritent les unes des autres :

Comme conséquence de ce refactoring, de nombreux membres ont été déplacés à partir de TCustomListView, et de nouveaux membres ont été ajoutés aux nouvelles classes vue liste :

Classe ou unité Membres de TCustomListView Nouveaux membres
FMX.ListView.TAdapterListView

Protégés :

Publics :

Protégés :

FMX.ListView.TListViewBase

Publics :

Protégés :

Publics :

Protégés :

FMX.ListView.TPresentedListView

Protégés :

FMX.ListView.TAppearanceListView

Publics :

Protégés :

Protégés :

FMX.ListView.Appearances

Protégés :

FMX.ListView.Appearances.TAppearancesRegistry

Protégés :

FMX.ListView.Types

Protégés :

En outre :

TListViewItems a été divisée en quatre classes

TListViewItems a été déplacée dans une nouvelle unité, FMX.ListView.Adapters.Base, et a été fractionnée dans les classes suivantes qui héritent les unes des autres :

Comme conséquence de ce refactoring, les membres suivants ont été déplacés à partir de TListViewItems :

Classe ou unité Membres de TListViewItems Nouveaux membres
TAbstractListViewAdapter

Publics :

  • Sort (previously protected)

Publics :

Protégés :

TFilterableListViewItems

Publics :

Protégés :

TAppearanceListViewItems

Publics :

Protégés :

Protégés :

FMX.ListView.Types

Ce refactoring résultait également de la création des nouvelles interfaces suivantes que ces classes d'éléments de vue liste implémentent :

Classe Interfaces
TListViewItems
TFilterableListViewItems
TAppearanceListViewItems

Les classes d'apparence d'objets ont été déplacées dans FMX.ListView.Appearances

Les classes suivantes ont été déplacées dans l'unité FMX.ListView.Appearances :

TListItemObject a été renommée et modifiée

TListItemObject a été renommée TListItemDrawable, et existe maintenant uniquement en tant que sous-classe vide de TListItemDrawable à des fins de compatibilité descendante.

En outre, TListItemDrawable a subi les modifications suivantes :

TListItemObjectClass a été déplacée dans FMX.ListView.Appearances et elle est maintenant une référence de classe de TListItemDrawable.

TListItemObjects a été renommée TListItemView, et existe maintenant uniquement en tant que sous-classe vide de TListItemView à des fins de compatibilité descendante.

En outre, TListItemView a subi les modifications suivantes :

  • La propriété ItemList a été renommée ViewList. Par ailleurs, sa visibilité est passée de protected à public.
  • La propriété Objects a été renommée Drawables.
  • La fonction FindObject est désormais obsolète. Utilisez à la place la nouvelle fonction FindDrawable.
  • La fonction ObjectByName est désormais obsolète. Utilisez à la place la nouvelle fonction DrawableByName.
  • Elle fournit une nouvelle procédure : Insert.

TListItem a subi quelques modifications

Dans TListItem :

  • Deux nouvelles propriétés : Adapter, Index.
  • Les champs FHeaderRef protégés ont été remplacés par la propriété publique HeaderRef.
  • Le type TListItemObjectsType a été renommé TListItemViewType.
  • La propriété Objects a été renommée View.
  • Vous ne pouvez plus utiliser le champ FParent pour accéder au contrôle parent de la liste d'éléments que vous transmettez au constructeur.

Autres modifications