1.17 におけるリスト ビュー コントロールのリファクタリング

提供: Appmethod Topics
移動先: 案内検索

新機能 への移動


Appmethod 1.17 のリスト ビュー API がリファクタリングされました。リスト ビュー コンポーネントとリスト ビュー項目コンポーネントは異なるレイヤに分割され、1.16 のときよりも柔軟で拡張しやすいリスト ビュー API になっています。

この変更は、TListView コンポーネントをただ使用しているだけのプロジェクトにはほとんど影響しないはずです。ただし、リスト ビュー クラスやリスト ビュー項目クラスのサブクラスを作成しているプロジェクトには、大きな影響を及ぼす可能性があります。

TCustomListView が 5 つのクラスに分割された

TCustomListView は、順に継承関係のある以下のクラスに分割されました。

このリファクタリングの結果、次の表に示すように、多くのメンバが TCustomListView から他に移動し、また、これら新しいリスト ビュー クラスに新しいメンバが追加されました。

クラスまたはユニット TCustomListView から移動したメンバ 新しく追加されたメンバ
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:

また、次の変更も行われています。

  • IAppearanceItemOwner および IPublishedAppearanceOwner という 2 つのインターフェイスが新しく作成され、それを TAppearanceListView が実装しています。
  • 新しく Resize 手続きを実装したことで、ResizeAppearancesResizeObjects の手続きが不要になり、削除されました。

TListViewItems が 4 つのクラスに分割された

TListViewItemsFMX.ListView.Adapters.Base という新しいユニットに移動し、順に継承関係のある以下のクラスに分割されました。

このリファクタリングの結果、以下のメンバが TListViewItems から他に移動しました。

クラスまたはユニット TListViewItems から移動したメンバ 新しく追加されたメンバ
TAbstractListViewAdapter

public:

  • Sort(以前は protected)

public:

protected:

TFilterableListViewItems

public:

protected:

TAppearanceListViewItems

public:

protected:

protected:

FMX.ListView.Types

このリファクタリングの結果、以下の新しいインターフェイスも作成され、それをリスト ビュー項目のクラスが実装しています。

クラス インターフェイス
TListViewItems
TFilterableListViewItems
TAppearanceListViewItems

オブジェクト外観クラスが FMX.ListView.Appearances に移動した

以下のクラスが FMX.ListView.Appearances ユニットに移動しました。

TListItemObject の名前と内容が変更された

TListItemObjectTListItemDrawable という名前に変更され、元の名前は下位互換性を保つために TListItemDrawable の空のサブクラスとしてだけ残されています。

さらに、TListItemDrawable に対して以下の変更が行われました。

  • FLocalRect フィールドが LocalRect プロパティになりました。
  • 新しい関数 InLocalRect が追加されました。
  • CalculateLocalRect の可視性が protected から public に変更されました。

TListItemObjectClassFMX.ListView.Appearances に移動し、TListItemDrawableクラス参照になりました。

TListItemObjectsTListItemView という名前に変更され、元の名前は下位互換性を保つために TListItemView の空のサブクラスとしてだけ残されています。

さらに、TListItemView に対して以下の変更が行われました。

  • ItemList プロパティの名前が ViewList に変更されました。また、その可視性が protected から public に変更されました。
  • Objects プロパティの名前が Drawables に変更されました。
  • FindObject 関数が非推奨になりました。この関数の代わりに新しい FindDrawable 関数を使用してください。
  • ObjectByName 関数が非推奨になりました。この関数の代わりに新しい DrawableByName 関数を使用してください。
  • 新しい手続き Insert が追加されました。

TListItem に変更が加えられた

TListItem に以下の変更が加えられました。

  • Adapter および Index という 2 つの新しい手続きが追加されました。
  • protected の FHeaderRef フィールドが public の HeaderRef プロパティに置き換えられました。
  • TListItemObjectsType 型の名前が TListItemViewType に変更されました。
  • Objects プロパティの名前が View に変更されました。
  • コンストラクタに渡した項目リストの親コントロールに、FParent フィールドを使ってアクセスできなくなりました。

その他の変更