Bei einem kurzen schnellen Blick auf die Hilfe fühle ich mich bestätigt (siehe vor allem letzter Absatz):
Zitat:
Suchreihenfolge für Stilressourcen
Ein Steuerelement sucht nach einem Stil anhand der folgenden (näherungsweisen) Suchsequenz und hält bei der ersten Übereinstimmung an:
1. Wenn die Eigenschaft StyleBook des Formulars festgelegt ist, wird dieses TStyleBook anhand zweier Namen durchsucht: 1. Der Eigenschaft StyleLookup des Steuerelements, sofern festgelegt.
2. Eines Standardnamens, der aus dem Klassennamen des Steuerelements gebildet wird: 1. Der erste Buchstabe (das Präfix 'T' im Standardschema zur Klassenbenennung) wird weggelassen.
2.'style' wird hinzugefügt.
2. Die fest codierten Standardstile werden anhand von drei Namen gesucht: 1. Der Eigenschaft StyleLookup des Steuerelements, sofern festgelegt.
2. Des Standardnamens, der aus dem Klassennamen des Steuerelements gebildet wird.
3. Eines Standardnamens, der aus dem Klassennamen des übergeordneten Steuerelements nach demselben Muster gebildet wird.
Zum Beispiel lauten die Standardnamen für TPanel "Panelstyle" und "Controlstyle". Für TCalloutPanel lauten die Standardnamen "CalloutPanelstyle" und "Panelstyle".
Bei dem Namensabgleich wird die Groß-/Kleinschreibung nicht berücksichtigt. Wenn keine Übereinstimmung gefunden wird, hat das Steuerelement keinen Inhalt und ist eigentlich nicht sichtbar. Code, der vom Auffinden von Unterkomponenten abhängt, schlägt fehl. (Dies dürfte nur bei unvollständigen oder inkorrekt zusammengestellten, benutzerdefinierten Steuerelementen vorkommen, weil alle integrierten Steuerelemente über zugehörige fest codierte Stile verfügen. Direkte Nachkommen von integrierten Klassen hätten den Inhalt ihrer Basisklasse; Nachkommen der zweiten Generation wären leer.)
Wenn ich also einen Style "MyComponentstyle" für "TMyComponent" deklariere und der Anwender einen anderen Style in die Anwendung lädt (das kann man ja so vorsehen) ist MyComponent nicht mehr sichtbar. Ähnlich läuft es wenn man von TEdit mal TBasedEdit und davon wieder TMyEdit ableitet und dieses benutzt.
Man mag für das eine oder andere Problem Notlösungen finden, aber das Konzept würde ich aus meinem derzeitigen Blickwinkel als halbgar bezeichnen.
Lieber würde ich hinterlegen, wie die Hintergründe der Controls gefüllt werden sollen (Holzmuster, Aluminium, Farbverlauf, grau, halbtransparent usw) wie die Rahmen aussehen sollen (jeweils für erhöht, flach und vertieft), welche Textfarbe und Textart genutzt werden soll usw.
Dann könnte ich meiner TMyPanel einfach sagen dass sie einen abgerundeten Rahmen haben soll, dass sie erhaben, flach oder eingedrückt sein soll und das tatsächliche Abbild wird dann zum Programmstart oder bei Größenänderungen (nicht bei Verschiebungen von Komponenten) neu zusammengestellt.
Dann müssten die Styles nur alle Bausteine (Schnippsel) enthalten, mit denen Komponenten zusammengebaut werden können und nicht mehr alle Komponentenabbilder selbst.
Die Zusammensetzung der Schnipsel könnte sozusagen im Create jeder Komponente erfolgen - also per Quelltext. Oder man könnte dies auch über einen grafischen Editor und eine Ressource lösen, die dann in die Komponente integriert wird.
Die Style-Dateien würden dann nur noch allgemein gültige Bausteine (Schnippsel) enthalten, die beim Zeichnen der Komponenten genutzt werden können.
Dann wären alle Stiele für alle Projekte verwendbar und man müsste nicht befürchten, dass bestimmte Komponenten nicht oder völlig falsch dargestellt werden.
Mich nervt eben, dass ein völlig neues Framework auf den Markt geworfen wurde, das ein wirklich hohes Potential hat, das dieses aber leider in großen Teilen verschenkt.
Ich würde mich gern eines besseren belehren lassen - bin ja selbst nur Quereinsteiger - aber ich denke, so falsch liege ich da leider nicht.
Für kleine 08/15-Anwendungen oder kleine Apps mag FMX ja funktionieren, aber für größere Projekte sehe ich schwarz. Jedenfalls kann man dann nur die Basics verwenden damit alles stabil läuft und muss sich in den eigenen Möglichkeiten selbst beschneiden.
Das war sicherlich mal anders angedacht - jedenfalls haben das die Werbevideos von Emba suggeriert.