Arbeiten mit nativen und benutzerdefinierten FireMonkey-Stilen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Anpassen von FireMonkey-Anwendungen mit Stilen


Verschiedene Plattformen unterstützen verschiedene Auflösungen:

Plattform Unterstützte Auflösungen
1x 1.25x 1.5x 2x 3x
Windows
Checkmark.svg
Checkmark.svg
Checkmark.svg
macOS
Checkmark.svg
Checkmark.svg
iOS
Checkmark.svg
Checkmark.svg
Checkmark.svg
Android
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Hinweis: Auf iOS unterstützen nur iPhone 6 Plus und iPhone 6S Plus 3-fache Auflösung.

FireMonkey-Anwendungen laden die geeigneten nativen Stilen zur Laufzeit (abhängig vom Zielgerät) und zeigen sie automatisch an, ohne dass Sie ein Stilbuch oder Code hinzufügen müssen. FireMonkey-Anwendungen können zudem benutzerdefinierte Stile verwenden, die auf hochauflösenden und auf Displays mit Standardauflösung gut dargestellt werden. Hochauflösende Stile (wie Retina) werden nur zur Laufzeit angezeigt.

Laden von Stilen zur Laufzeit

Rufen Sie im Programm TStyleManager.SetStyleFromFile auf, um für ein Formular einen bestimmten Stil zu übernehmen. Zum Beispiel:

Delphi:

procedure TForm1.FormCreate(Sender: TObject);
begin
    // ...
    TStyleManager.SetStyleFromFile('Air.style');

C++:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   //...
   TStyleManager::SetStyleFromFile(L"Air.style");
Hinweis: Sie müssen die Unit FMX.Styles hinzufügen.

Der beste Weg, um einen Stil mit Ihrer Anwendung weiterzugeben, ist die Datei im Bereitstellungs-Manager hinzuzufügen. Beim Hinzufügen der Datei müssen Sie den jeweiligen Remote-Pfad für die verschiedenen Plattformen angeben, die Ihre Anwendung unterstützen soll. Weitere Informationen über Dateipfadfunktionen für die verschiedenen Plattformen finden Sie unter Standard-RTL-Pfadfunktionen für alle unterstützten Zielplattformen.

In FireMonkey-3D-Anwendungen werden automatisch hochauflösende Stile verwendet

Alle FireMonkey-3D-Komponenten werden automatisch hochauflösend angezeigt, wenn sie auf iOS-Retina-Geräten oder auf hochauflösenden Android-Geräten ausgeführt werden. Dazu sind keine zusätzlichen Eigenschaften erforderlich.

Zu FireMonkey-3D-Komponenten zählen: TForm3D, TViewport3D und TLayer3D.

Ermitteln der Betriebssystemversion auf mobilen Geräten

Um festzustellen, welche Betriebssystemversion auf dem mobilen Zielgerät verwendet wird (und um zur Laufzeit den passenden verfügbaren Stil zuzuweisen), verwenden Sie die Methode TOSVersion.Check wie folgt.

Beispiel: Das folgende Codefragment überprüft, ob das Zielgerät ein iOS 8-Gerät oder ein Android-Gerät mit Lollipop (5.0) ist. Abhängig von der Betriebssystemversion wird ein bestimmter Stil zugewiesen.

Delphi:

procedure TForm1.FormCreate(Sender: TObject);
var
  MyStyle: TFmxObject;
begin
{$IFDEF IOS}
  if TOSVersion.Check(8, 0) then
    MyStyle := TStyleManager.LoadFromResource(HInstance, 'iOSBlack', RT_RCDATA)
  else
    MyStyle := TStyleManager.LoadFromResource(HInstance, 'iOSTransparent', RT_RCDATA);
  TStyleManager.SetStyle(MyStyle);
{$ENDIF}

{$IFDEF Android}
  if TOSVersion.Check(5, 0) then
    MyStyle := TStyleManager.LoadFromResource(HInstance, 'RT_DARK', RT_RCDATA)
  else
    MyStyle := TStyleManager.LoadFromResource(HInstance, 'RT_LIGHT', RT_RCDATA);
  TStyleManager.SetStyle(MyStyle);
{$ENDIF}

end;

C++:

void __fastcall TForm1::FormCreate(TObject *Sender) 
{
TFmxObject *MyStyle;

#if (TARGET_OS_IPHONE) 
  if (TOSVersion::Check(8, 0)) 
    MyStyle = TStyleManager::LoadFromResource((unsigned int)HInstance, "iOSBlack", RT_RCDATA);
  else 
    MyStyle = TStyleManager::LoadFromResource((unsigned int)HInstance, "iOSTransparent", RT_RCDATA);
  TStyleManager::SetStyle(MyStyle);
#endif

#if defined(__Android__)
  if (TOSVersion::Check(5, 0)) 
    MyStyle = TStyleManager::LoadFromResource((unsigned int)HInstance, "RT_DARK", RT_RCDATA);
  else 
    MyStyle = TStyleManager::LoadFromResource((unsigned int)HInstance, "RT_LIGHT", RT_RCDATA);
  TStyleManager::SetStyle(MyStyle);
#endif
}
Hinweis: Weitere Informationen über die Verwendung von Ressourcen zum Laden von Stilen für Ihre Anwendung finden Sie unter Hinzufügen von Stilressourcen als RCDATA.

Weitere Informationen zur bedingten Compilierung finden Sie unter:

Laden eigener Stile

Die folgenden Anweisungen beschreiben die Arbeit mit benutzerdefinierten Stilen, wie dem Jet-Stil, der im Premium-Stilpaket für FireMonkey enthalten ist.

Hinzufügen eines benutzerdefinierten Stils zu einer mobilen Anwendung

RAD Studio enthält die folgenden benutzerdefinierten mobilen Stile:

  • Android:
    • AndroidDark.fsf
    • AndroidLDark.fsf
    • AndroidLDarkBlue.fsf
    • AndroidLight.fsf
    • AndroidLLight.fsf
    • GoogleGlass.fsf
  • iOS:
    • iOSBlack.fsf
    • iOSTransparent.fsf

Diese Stile werden auf Ihrem System neben dem Beispiele-Verzeichnis in den folgenden plattformspezifischen Verzeichnissen gespeichert:

 C:\Users\Public\Documents\Embarcadero\Studio\22.0\Styles\iOS
 C:\Users\Public\Documents\Embarcadero\Studio\22.0\Styles\Android

Die benutzerdefinierten mobilen Stile für iOS und Android unterstützen Standard- und hochauflösende Geräte in einer Stildatei. Dies umfasst die integrierte Unterstützung für:

  • iOS-Standard-, iOS-Retina-Geräte (1x, 2x) und iOS-Retina HD-Geräte (3x)
  • Mehrfachauflösungen für Android-Geräte (1x, 1,5x, 2x, 3x)

Zusätzlich können Sie neue FireMonkey-Stile verwenden, die im Premium-Stilpaket fürFireMonkey (EN) enthalten sind und auch eine 3-fache Auflösung für iOS 8-Geräte unterstützen.

Auf dem Desktop trifft dies auch für die benutzerdefinierten Jet- und Diamond Mac-Stile zu, die im Premium-Stilpaket für FireMonkey enthalten sind; diese Stile unterstützen sowohl Retina- als auch Nicht-Retina-MacBook-Geräte in einer Stildatei.

So fügen Sie einer geräteübergreifenden FireMonkey-Anwendung einen benutzerdefinierten Stil hinzu:

  1. Erstellen Sie eine geräteübergreifende Anwendung.
  2. Wählen Sie die Master-Ansicht aus, und fügen Sie Ihrem Formular eine TStyleBook-Komponente hinzu.
  3. Wählen Sie in der Master-Ansicht einen Stil aus dem Dropdown-Menü Stil des Formular-Designers aus (Windows, macOS, iOS oder Android). In diesem Beispiel wird der Android-Stil für die Master-Ansicht verwendet:
    SelectAStyle.png
  4. Laden Sie eine FireMonkey-Stildatei für die entsprechende Plattform:
    1. Doppelklicken Sie auf das Stilbuch. Der FireMonkey-Stil-Designer wird geöffnet.
    2. Klicken Sie auf die Schaltfläche Stil öffnen der Symbolleiste des FireMonkey-Stil-Designers.
    3. Navigieren Sie zur gewünschten FireMonkey-Stildatei.
      Wenn beispielsweise für die aktuelle Ansicht im Formular-Designer der Stil Android festgelegt ist, würden Sie einen Android-Stil wie AndroidLight.fsf laden und zuweisen.
      Hinweis: Die FireMonkey-Stile für die verschiedenen Formular-Designer-Stile befinden sich in parallelen Verzeichnissen:
      Windows: C:\Users\Public\Documents\Embarcadero\Studio\22.0\Styles
      Android: C:\Users\Public\Documents\Embarcadero\Studio\22.0\Styles\Android
      iOS: C:\Users\Public\Documents\Embarcadero\Studio\22.0\Styles\iOS
  5. Öffnen Sie jede Ihrer erstellten Ansichten, wählen Sie die Komponente TStyleBook in dieser Ansicht aus, und laden Sie den dieser Plattform entsprechenden benutzerdefinierten Stil. Bei FireMonkey-Stilen muss jeder Ansicht, einschließlich der Master-Ansicht, im Formular-Designer ein Stil zugewiesen sein.
    Das heißt, laden Sie einen Windows-Stil für die Ansicht "Windows-Desktop", einen Android-Stil für die Ansicht "Android...", einen Mac-Stil für die Ansicht "macOS-Desktop", einen iOS-Stil für die Ansichten "iPad" und "iPhone".
    Hinweis: Wenn Sie für iPad und iPhone unterschiedliche Ansichten verwenden, müssen Sie für jede Ansicht denselben iOS-Stil laden.
  6. Um den benutzerdefinierten Stil anstatt des nativen Stils in einem Formular zu verwenden, müssen Sie das gewünschte Stilbuch dem Formular zur Laufzeit zuweisen:

Verwenden von benutzerdefinierten Stilen für mehrere Formulare

Um denselben benutzerdefinierten Stil allen Formularen einer Anwendung zuzuweisen, ohne die Eigenschaft StyleBook jedes Formulars zur Entwurfszeit festlegen zu müssen, können Sie zur Laufzeit die Eigenschaft UseStyleManager verwenden.

Um denselben benutzerdefinierten Stil allen Formularen einer Anwendung zuzuweisen:

Verwenden von benutzerdefinierten Stilen in Steuerelementen für mehrere Formulare

Eine Anwendung kann mehr als ein TStyleBook-Objekt haben; dann können verschiedene Formulare die StyleBook-Eigenschaft verwenden, um jedes dieser Stilbücher nacheinander zu referenzieren. Beachten Sie, dass jedes Formular immer die StyleLookup-Eigenschaft verwenden kann, um jeden benutzerdefinierten Stil anzugeben, der in jedem TStyleBook-Objekt, das in der aktuellen Objektgruppe verwendet wird, definiert ist.

Siehe auch