FireMonkey-Komponenten-Rendering

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu FireMonkey-Komponentenhandbuch

Grundlegendes 2D-Komponenten-Rendering

Zum besseren Verständnis des Komponenten-Rendering sollten Sie sich zunächst die relevante FMX-Klassenhierarchie ansehen. TFmxObject verzweigt von TComponent zur Bildung des FMX-Stamms, der den Objektlebenszyklus bereitstellt. TControl, das eine Zeichenfläche kapselt und die Funktionalität für das Zeichnen hinzufügt, stammt davon ab.

Die zwei relevanten Zweige von TControl sind die primitiven Klassen in der Unit FMX.Objects und die mit Stilen ausgestatteten Steuerelemente für Benutzerinteraktionen in den Units FMX.Controls, FMX.ExtCtrls und anderen. Zu den primitiven Klassen zählen Objekte wie Formen und Bilder:

und davon abgeleitete Klassen wie:

Mit Stilen ausgestattete Steuerelemente sind von TStyledControl abgeleitet und umfassen:

Zeichnen oder Zusammenfügen

Primitive Klassen überschreiben die Prozedur TControl.Paint und zeichnen direkt auf die Zeichenfläche. Jeder Stil, der ein TStyledControl enthält, ist eine Anordnung einer Hierarchie von Untersteuerelementen und primitiven Klassen. Ein Stil lässt sich in eine geschichtete Menge von primitiven Klassen zerlegen, und diese primitiven Klassen zeichnen ihrerseits auf die Zeichenfläche, um das Steuerelement zu rendern.

Eine benutzerdefinierte Komponente kann mit jeder der beiden Techniken oder – bei einem Steuerelement, das benutzerdefinierte primitive Klassen enthält – mit einer Kombination davon gezeichnet werden.

  • Leiten Sie für benutzerdefinierte primitive Klassen Unterklassen direkt von TControl oder von TShape ab (TShape verfügt über mehrere Pinsel und ein umgebendes Rechteck). Fügen Sie die erforderlichen Eigenschaften hinzu, und überschreiben Sie dann TControl.Paint, um auf die Zeichenfläche (TControl.Canvas) zu zeichnen.
  • Unterklassen von TStyledControl suchen ihre Stilressource unter den der Eigenschaft StyleBook des Formulars zugewiesenen Ressourcen mit einer einfachen auf den Klassennamen in TStyledControl.GetStyleObject basierten Suchroutine.
    • Anwendungsentwickler können Steuerelemente jederzeit durch Erstellen eines Stils mit dem korrekten Namen anpassen. Dieser Stil wird automatisch für alle Instanzen des Steuerelements angewendet. Stile können auch einzelnen Steuerelementen durch Setzen der Eigenschaft StyleLookup zugewiesen werden.
    • Designer von Stil-Themes können Stile für benutzerdefinierte Steuerelemente durch Erstellen eines Stils mit dem korrekten Namen in ihr Theme einbeziehen.
    • Um das Erscheinungsbild des Steuerelements zu definieren, wenn kein passender Stil vorhanden ist, können Komponentenentwickler GetStyleObject überschreiben.

Siehe auch