Änderungen für FireMonkey-Gittersteuerelemente in Berlin

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Neuerungen


In Berlin wurden die Darstellungslogik und das Datenmodell von Gittersteuerelementen von den Steuerelementen selbst getrennt. Diese Trennung ermöglicht die Unterstützung von nativen Darstellungen von Gittersteuerelementen.

Als Folge dieser Änderung hat sich die API von Gittersteuerelementen (TCustomGrid und deren Unterklassen, TGrid und TStringGrid) geändert. Wenn Sie ein altes Projekt, in dem Gittersteuerelemente verwendet werden, nach Berlin migrieren, müssen Sie diese API-Änderungen berücksichtigen.

Neues Datenmodell

Gittersteuerelemente haben die neue Eigenschaft Model, die auf ihr Datenmodell zeigt, das eine Instanz von TGridModel oder eine Unterklasse ist (z. B. TStringGrid verwendet TStringGridModel). Einige Eigenschaften von Gittersteuerelementen, wie Options, wurden in das Datenmodell verschoben und sind in Gittersteuerelementen nur als Spiegel ihres Datenmodelläquivalents verblieben.

Es wurden außerdem zwei neue Optionen, TGridOption.AutoDisplacement und TGridOption.CancelEditingByDefault, implementiert, um die Bearbeitung von Gitterzellen auf mobilen Geräten mit einer virtuellen Tastatur zu vereinfachen.

Neue Darstellungssteuerelemente

Die auffälligste Änderung ist die neu hinzugefügte Unit FMX.Grid.Style. Die darin enthaltene Klasse TStyledGrid implementiert die Standard-FireMonkey-Darstellung für Gittersteuerelemente. Sie müssen die neue Unit FMX.Grid.Style in eine der uses-Klauseln jedes alten Projekts einfügen.

Hinweis: In neue Projekte wird diese Unit automatisch eingefügt.

Sie sollten mit der Darstellungsklasse nicht direkt arbeiten, sondern stattdessen das Datenmodell verwenden.

Andere Änderungen für Gittersteuerelemente

Zusätzlich zur Trennung des Datenmodells und der Darstellungssteuerelemente von den Gittersteuerelementen wurden weitere Änderungen vorgenommen.

Zu Gittersteuerelementen wurden einige neue API-Member hinzugefügt: CellByPoint, CellRect, CanEdit, Col, DisplayCells, LeftColumn, RightColumn, Row, ScrollToSelectedCell, SetTopLeft.

Zu TStringGrid wurden Eigenschaften zur Unterstützung des Hilfekontextes hinzugefügt: HelpContext, HelpKeyword, HelpType.

Gittersteuerelemente sind nicht mehr für deren Darstellung zuständig. Daher wird OnApplyStyleLookup nur von TStringGrid unterstützt, und folgende Ereignisse werden nicht mehr von Gittersteuerelementen veröffentlicht: OnCanFocus, OnClick, OnDblClick, OnDragEnter, OnDragLeave, OnDragOver, OnDragDrop, OnDragEnd, OnEnter, OnExit, OnKeyDown, OnKeyUp, OnMouseDown, OnMouseEnter, OnMouseLeave, OnMouseMove, OnMouseUp, OnMouseWheel, OnResize.

Hinweis: Diese Ereignisse werden nicht als published, sonder als public deklariert, d. h., Sie können sie zur Laufzeit verwenden. Allerdings sollten Sie, wenn möglich, stattdessen Ereignisse aus dem Gittermodell verwenden.

Änderungen für Spalten

Es wurden zwei neue Spaltentypen hinzugefügt:

Einige vorhandene Spaltentypen wurden verbessert:

An TColumn wurden einige kleinere Änderungen in Bezug auf das Verhalten der Komponente vorgenommen:

  • Durch einige neue Eigenschaften wurde die Arbeit mit dem Zelleditor erleichtert: CanEdit, RefreshEditor, ValidChar.
  • Die Eigenschaft InEditMode hat nun einen booleschen Wert, und es gibt eine neue Eigenschaft, EditorState, die weitere Details bereitstellt.
  • Die Eigenschaft ApplyImmediately ist nicht mehr verfügbar. Eine ähnliche (aber nicht identische) Option wurde hinzugefügt: TGridOption.AutoDisplacement. Sie können diese neue Option den Optionen des Modells der Gittersteuerelemente hinzufügen.

TColumn ist nicht mehr für seine Darstellung zuständig. Daher erhielt TColumn die Eigenschaft Model, die auf das Datenmodell des übergeordneten Gitters zeigt, und die Eigenschaft PresentedControl, die auf das Darstellungssteuerelement zeigt. Allerdings wurden viele Eigenschaften und Ereignisse von TColumn ersetzt oder werden auch nicht mehr unterstützt: