Verwenden von FireMonkey-Ansichten

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu FireMonkey-Anwendungsdesign

Mithilfe von Ansichten können Sie verschiedene Layouts und Komponenten für die Formulare Ihrer Anwendung für das jeweilige Gerät, auf dem Ihre Anwendung ausgeführt wird, festlegen.

Neue Formulare enthalten anfänglich eine einzige Ansicht: die Master-Ansicht mit dem Standardnamen unit1.fmx.


MultipleViews.png

Vererbung von Ansichten

Jede weitere Ansicht, die Sie Ihrem Projekt hinzufügen, erbt die Komponenten der Master-Ansicht und deren Eigenschaften.

Beim Hinzufügen oder Entfernen von Komponenten aus der Master-Ansicht gibt der Formular-Designer diese Änderung an vorhandene Ansichten weiter. Komponenten können nur der Master-Ansicht hinzugefügt bzw. daraus entfernt werden; Sie können Komponenten nicht zu anderen Ansichten hinzufügen bzw. daraus entfernen. Wenn Sie möchten, dass eine Komponente nur in bestimmten Ansichten angezeigt wird, können Sie diese Komponente in anderen Ansichten ausblenden.

Wenn Sie in der Master-Ansicht Eigenschaften oder Komponenten ändern, gibt der Formular-Designer diese Änderungen auch an alle vorhandenen Formulare weiter, sofern in einer Ansicht nicht bereits ein anderer Wert für diese Eigenschaft festlegt wurde. Sie können Eigenschaftswerte in einer bestimmten Ansicht anpassen, um den Wert aus der Master-Ansicht zu überschreiben.

Wiederherstellen der Eigenschaftswerte der Master-Ansicht für eine Komponente

So stellen Sie die Eigenschaftswerte aus der Master-Ansicht für eine Komponente in einer anderen Ansicht wieder her:

  1. Wählen Sie die betreffende Ansicht in der Ansichtsauswahl aus.
  2. Klicken Sie im Formular-Designer mit der rechten Maustaste auf die Zielkomponente.
  3. Wählen Sie im Kontextmenü Geerbte Einstellungen wiederherstellen.

Alle Eigenschaften der ausgewählten Komponente werden auf die Werte der Master-Ansicht zurückgesetzt.

Ausblenden von Komponenten

Sie können Komponenten nicht aus einer Ansicht entfernen, aber sie können Komponenten ausblenden.

So blenden Sie eine Komponente in einer bestimmten Ansicht aus:

  1. Wählen Sie die Komponente aus.
  2. Setzen Sie im Objektinspektor die Eigenschaft Visible auf False.

Über bedingten Code im Quelltext-Editor können Sie eine Komponente für eine bestimmte Plattform ausblenden:

Object Pascal:

{$IFDEF ANDROID}
    SpeedButton1.Visible := False;
{$ENDIF}
C++:
#if defined(__ANDROID__) && defined(__arm__)
    SpeedButton1->Visible = false;
#endif

Sie können diesen Code beispielsweise in einer Ereignisbehandlungsroutine für das Ereignis OnCreate ausführen. Weil Sie die Sichtbarkeit der Komponente zur Laufzeit ändern, wird sie im Formular-Designer weiterhin angezeigt.

Algorithmus zum Laden von Ansichten

Wenn Sie Ihre Anwendung auf einem Gerät ausführen, wertet FireMonkey die in der Anwendung definierten Ansichten aus und führt sie nach Priorität auf. Die Liste enthält nur Ansichten deren Eigenschaft Platform mit der Plattform, auf der die Anwendung ausgeführt wird, übereinstimmt. Die Priorität der einzelnen Ansichten in der Liste wird anhand der folgenden Kriterien von der höchsten (1) bis zur niedrigsten Priorität bestimmt:

Priorität Voraussetzungen

1

  • Die Diagonale des Geräts, auf dem die Anwendung ausgeführt wird, befindet sich innerhalb des Diagonalbereichs der betreffenden Ansicht: [minimale Diagonale, maximale Diagonale].
  • Unter den Diagonalbereichen aller Ansichten liegt der Diagonalbereich der betreffenden Ansicht am nächsten bei der Diagonale des Geräts, auf dem die Anwendung ausgeführt wird.
  • Die Geräteklasse der betreffenden Ansicht entspricht der Klasse des Geräts, auf dem die Anwendung ausgeführt wird.

2

  • Die Diagonale des Geräts, auf dem die Anwendung ausgeführt wird, befindet sich innerhalb des Diagonalbereichs der betreffenden Ansicht: [minimale Diagonale, maximale Diagonale].
  • Unter den Diagonalbereichen aller Ansichten liegt der Diagonalbereich der betreffenden Ansicht am nächsten bei der Diagonale des Geräts, auf dem die Anwendung ausgeführt wird.
  • Die Geräteklasse der betreffenden Ansicht entspricht nicht der Klasse des Geräts, auf dem die Anwendung ausgeführt wird.
  • Die betreffende Ansicht ist nicht exklusiv.

3

  • Die betreffende Ansicht ist nicht exklusiv.
Hinweis: Ansichten mit dieser Priorität werden anhand der Differenz zwischen dem Mittelwert des Diagonalbereichs der betreffenden Ansicht (z. B. 5, wenn das Minimum 4 und das Maximum 6 ist) und der Diagonale des Geräts sortiert, auf dem die Anwendung ausgeführt wird. Ansichten mit der niedrigsten Differenz erhalten eine höhere Priorität.

FireMonkey lädt die erste Ansicht aus der Liste. Wenn keine der Ansichten die Voraussetzungen erfüllt, lädt FireMonkey stattdessen die Master-Ansicht.

Die Details zu den in Appmethod integrierten Ansichten finden Sie in den plattformspezifischen Implementierungen der Unit System.Devices: System.Android.Devices.pas, System.Win.Devices.pas usw.

Bereiche von Gerätegrößen für Android-Ansichten

Anhand von Größenbereichen wird die Ansicht bestimmt, die in Android-Apps verwendet wird. Die folgende Tabelle enthält die Bereiche für jede Ansicht in Querformatkoordinaten. Die Laufzeit benötigt keine exakte Übereinstimmung, um ein Ansicht auszuwählen. Es wird die bestmöglichste Übereinstimmung ausgewählt.

Ansichtsname Minimale Größe
(Pixel)
Maximale Größe
(Pixel)
PPI

Android 3.5" Phone

800 x 500

1000 x 600

320

Android 4" Phone

1168 x 730

1360 x 850

320

Android 5" Phone

1440 x 900

1708 x 960

320

Android 7" Tablet

1708 x 960

1920 x 1200

320

Android 10" Tablet

2400 x 1500

2560 x 1600

320

Andere Formularnamen zur Laufzeit

Zur Laufzeit kann die Eigenschaft Name der Formulare Ihrer Anwendung von den Namen abweichen, die Sie beim Entwurf festgelegt haben. Wenn FireMonkey eine andere Ansicht als die Master-Ansicht lädt, werden die Namen der Formulare aus dem Namen, die Sie in der Master-Ansicht zugewiesen haben, und dem Codenamen der geladenen Ansicht und einem Unterstrich (_) gebildet. Wenn beispielsweise der Name eines Formulars "MyForm" lautet und FireMonkey zur Laufzeit die Ansicht "Windows Desktop" lädt, lautet der Laufzeitname des Formulars "MyForm_Windows".

Ansichten mit namenlosen Komponenten können nicht erstellt werden

Bevor Sie eine neue Ansicht für Ihr Projekt erstellen können, müssen Sie sicherstellen, dass alle Komponenten in Ihrem Projekt einen Namen haben.

Wenn Sie eine geräteübergreifende Anwendung mit einer oder mehreren Ansichten mit namenlosen Komponenten öffnen, zeigt Appmethod die folgende Fehlermeldung an:

 Cannot inherit from form <form name>.  It contains a component with a blank name property.

Themen

Siehe auch