Schritt 3 - Hinzufügen von Stilressourcen als RCDATA (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Erstellen einer FireMonkey-Komponente (C++)

Für jede .style-Datei ist eine zugehörige plattformspezifische .rc-Datei (bestehend aus einer Zeile) mit der Komponenten-Unit entsprechenden Stammnamen erforderlich.

Beispiel einer .rc-Datei für Windows und einer .rc-Datei für den Mac:

  • DialogButtons.win.rc
DialogButtonPanelStyle RCDATA "DialogButtonPanel_win.style"
  • DialogButtons.mac.rc
DialogButtonPanelStyle RCDATA "DialogButtonPanel_mac.style"

Hinzufügen der Stilressourcen als RCDATA

  1. Aktivieren Sie in der Projekte-Fenster durch Doppelklicken das Projekt DialogButtonsPackage.bpl.
  2. Führen Sie für jede .rc-Datei, die erstellt werden muss, die folgenden Schritte aus:
    • Wählen Sie Datei > Neu > Weitere > Andere Dateien > Textdatei, und wählen Sie im Dialogfeld Neue Datei den Eintrag .rc Ressourcendatei aus.
    • Fügen Sie die oben beschriebene Zeile hinzu, und speichern Sie die Datei unter dem korrekten Dateinamen.
    Die .rc-Dateien sollten in der Projekthierarchie unter dem Knoten Enthält angezeigt werden. (Zur einfacheren Bearbeitung können Sie dem Projekt auch die .style-Dateien hinzufügen. Zum Compilieren ist dies aber nicht erforderlich, denn die .style-Dateien werden automatisch gefunden, da sie sich im selben Verzeichnis wie die RC-Dateien befinden.)
  3. Um diese Stile zu laden, überschreiben Sie in DialogButtons.h die Deklaration für TStyledControl.GetStyleObject und implementieren diese:
//DialogButtons.h
#include<System.Types.hpp>
#include<FMX.Styles.hpp>
...
protected:
     Fmx::Types::TFmxObject* __fastcall GetStyleObject(void);


//DialogButtons.cpp
...
Fmx::Types::TFmxObject* __fastcall TDialogButtonPanel::GetStyleObject(void)
{
 const UnicodeString Style = "DialogButtonPanelStyle";
	if (StyleLookup == "") {
	return TStyleManager::LoadFromResource((unsigned int)HInstance, Style,
	  (wchar_t*) RT_RCDATA);
	}
	return TStyledControl::GetStyleObject();
}

Die entsprechende aus der .rc-Datei compilierte .res-Datei wird mit konditionalen Plattformdirektiven einbezogen. Der Name des RCDATA-Eintrags ist für beide Dateien eine Konstante in der Funktion.

Hinweis: Der StyleName der Stammkomponente (TRectangle) in der .style-Datei ist zufällig derselbe wie der RCDATA-Name. Der StyleName ist erforderlich, falls der Stil in ein Stilbuch integriert wird und der Stil durch StyleName dokumentiert wird, daher sollten Sie den Stilnamen einbeziehen. Beim direkten Laden wird der Stamm-StyleName nicht verwendet und ist überflüssig.

Die Funktion lädt den Stil nur, wenn die Eigenschaft StyleLookup leer ist. Sie ruft TStyleManager zum Laden des Stils mit dem Handle des aktuellen Moduls auf – während des Entwurfs ist dies das Package .bpl und zur Laufzeit die .exe- oder .dll-Datei des Programms –, weil der Versuch, auf nicht vorhandene RCDATA zuzugreifen, eine Exception auslöst. Ansonsten wird das geerbte Verhalten zum Suchen eines benannten Stils oder des Standardstils anhand des Klassennamens verwendet.

  1. Klicken Sie bei geöffnetem Quellcode in der Projektverwaltung mit der rechten Maustaste auf das Package-Projekt, und wählen Sie Installieren. Dadurch wird das Package-Projekt compiliert und die Komponente der Tool-Palette hinzugefügt.

Zurück

Weiter

Siehe auch