Berlin での FireMonkey グリッド コントロールの変更点

提供: RAD Studio
移動先: 案内検索

新機能 への移動


Berlin では、グリッド コントロールプレゼンテーション ロジックデータ モデルがコントロール自身から切り離されました。この分離により、グリッド コントロールのネイティブ表示をサポートできるようになっています。

この変更の結果、グリッド コントロールの API(TCustomGrid とそのサブクラス TGrid および TStringGrid)が変更されました。グリッド コントロールを使用している古いプロジェクトを Berlin に移行する際は、API のこれらの変更を考慮に入れる必要があります。

新しいデータ モデル

グリッド コントロールには、自分のデータ モデルを指す新しい Model プロパティがあります。これは TGridModel またはそのサブクラスのインスタンスです(たとえば、TStringGrid では TStringGridModel が使用されます)。グリッド コントロールのプロパティの一部(たとえば Options など)はグリッド コントロールのデータ モデルに移動し、データ モデルに相当するもののミラーとしてグリッド コントロールに残っているだけです。

2 つの新しいオプション TGridOption.AutoDisplacement および TGridOption.CancelEditingByDefault も実装され、仮想キーボードでモバイル デバイス上のグリッド セルを編集しやすくなりました。

新しいプレゼンテーション コントロール

最も顕著な変更は新しいユニット FMX.Grid.Style の追加です。このユニットの TStyledGrid クラスは、グリッド コントロールの標準の FireMonkey 表示を実装したものです。古いプロジェクトでは、各プロジェクトの uses 句の 1 つに新しい FMX.Grid.Style ユニットを含める必要があります。

メモ: 新しいプロジェクトには、このユニットは自動的に組み込まれます。

プレゼンテーション クラスを直接操作するのではなく、データ モデルを使用しなければなりません。

グリッド コントロールのその他の変更点

データ モデルの切り離しプレゼンテーションの切り離しの他にも、グリッド コントロールにはいくつかの変更が加えられています。

新しい API メンバがいくつかグリッド コントロールに追加されました。つまり、CellByPointCellRectCanEditColDisplayCellsLeftColumnRightColumnRowScrollToSelectedCellSetTopLeft の各メンバです。

TStringGrid には、ヘルプ コンテキストをサポートするためのプロパティも追加されました。つまり、HelpContextHelpKeywordHelpType の各プロパティです。

グリッド コントロールは自らのプレゼンテーションを担当しなくなりました。そのため、OnApplyStyleLookupTStringGrid でのみサポートされており、グリッド コントロールでは、次に挙げるイベントを公開しなくなりました。つまり、OnCanFocusOnClickOnDblClickOnDragEnterOnDragLeaveOnDragOverOnDragDropOnDragEndOnEnterOnExitOnKeyDownOnKeyUpOnMouseDownOnMouseEnterOnMouseLeaveOnMouseMoveOnMouseUpOnMouseWheelOnResize の各イベントです。

メモ: これらのイベントの可視性は published ではなく public です。つまり、実行時に使用することはできます。ただし、できるだけ、グリッド モデルのイベントを代わりに使用した方がよいでしょう。

列の変更点

新しい型の列が 2 つ追加されました。

既存の列型がいくつか改良されました。

TColumn には、自らの動作に関係する小規模な変更がいくつか加えられています。

  • 新しいプロパティがいくつか追加されたため、セル エディタを操作しやすくなりました。つまり、CanEditRefreshEditorValidChar の各プロパティです。
  • InEditMode プロパティは論理値を取るようになり、詳細を示す新しいプロパティ EditorState が用意されています。
  • ApplyImmediately プロパティを使用できなくなりました。同様の(ただし、同一ではない)オプション TGridOption.AutoDisplacement が追加されました。グリッド コントロールのモデルオプションに、この新しいオプションを追加できます。

TColumn は自らのプレゼンテーションを担当しなくなりました。そのため、TColumn には、自分の親グリッドのデータ モデルを指す Model プロパティと、プレゼンテーション コントロールを指す PresentedControl プロパティが追加されました。ただし、次のように、TColumn の多くのプロパティとイベントは置き換えられたか、サポートされなくなりました。