Thema: Delphi FMX-Styles?

Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: FMX-Styles?

  Alt 6. Mai 2013, 19:50
Aus der Hilfe:

Zitat:
Verschachtelte Stile

Stile können auf andere, mit Stilen versehene Komponenten verweisen. Wie üblich werden Stile im TStyleBook-Objekt anhand des Namens ihrer obersten Ebene gefunden. Um beispielsweise denselben Verlauf zu verwenden, gehen Sie folgendermaßen vor:
1. Speichern Sie im FireMonkey-Stil-Designer die vorhandenen Stile in einer .style-Datei.
2. Bearbeiten Sie diese Datei mit einem Texteditor, um ein TBrushObject zu erstellen. Verwenden Sie einen geeigneten StyleName.
3. Laden Sie die .style-Datei.
4. Wählen Sie den neu definierten Stil aus, damit er im Objektinspektor angezeigt wird.
5. Öffnen Sie die Eigenschaft Brush: 1. Bearbeiten Sie die Eigenschaft Gradient mit dem Pinsel-Designer (wählen Sie im Dropdown-Menü des Eigenschaftswertes Bearbeiten).
2. Setzen Sie die Eigenschaft Kind auf bkGradient.

6. Führen Sie für jede Komponente, die den Verlauf verwendet, Folgendes aus (z.B. für die Eigenschaft Fill von TRectangle): 1. Setzen Sie die Eigenschaft Kind auf bkResource.
2. Öffnen Sie die Eigenschaft Resource (eine TBrushResource) und setzen Sie StyleLookup auf den in Schritt 2 festgelegten Namen.


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 gesetzt ist, wird dieses TStyleBook anhand zweier Namen durchsucht: 1.Der Eigenschaft StyleLookup des Steuerelements, sofern gesetzt.
2.Ein Standardname, 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 gesetzt.
2. Der Standardname, der aus dem Klassennamen des Steuerelements gebildet wird.
3. Ein Standardname, 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".

Die Namenssuche berücksichtigt die Groß-/Kleinschreibung nicht. 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.)

Formularstil

Obwohl TForm kein Steuerelement und keine Unterklasse von TStyledControl ist, kann TForm dennoch ein Stil zugewiesen werden. Die Eigenschaft StyleLookup eines Formulars hat den Standardwert "backgroundstyle". Die Standard-Stilressource mit diesem StyleName ist ein graues TRectangle-Objekt.

Die Eigenschaft Align der Ressource wird beim Laden auf alContents gesetzt, um den Hintergrund des Formulars damit zu füllen. Dies ist das erste Objekt, das gezeichnet wird, vor den anderen untergeordneten Objekten des Formulars.
Somit wird klar (sofern ich das richtig interpretiere), dass die "Notlösung" über einen Texteditor der offizielle Weg ist.
Insofern ist auch nicht zu erwarten, dass Emba ein schickes Video über das perfekte und unkomplizierte Erstellen einer neuen Komponente erstellen wird.

Hinzu kommt, dass der Bitmap Stil Designer auch nicht besser funktioniert. Wenn man von dem aus dann einen Style exportiert (z.B. wegen einem überarbeiteten png) werden die mühselig erstellten eigenen Stile überschrieben bzw. gelöscht.

Aus der Hilfe wird auch erkennbar, warum Ableitungen von Komponenten plötzlich "falsch" oder gar nicht mehr gezeichnet werden.

Also entweder ist das Konzept totaler Blödsinn oder es bedarf einer grundlegenden Erklärung.
Auf Grund der gesammelten Erfahrungen denke ich, dass sich das Konzept nicht halten wird.

Wenn Emba das mit einem Video widerlegen könnte, wäre das natürlich super.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat