Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   FMX Style Editor (https://www.delphipraxis.net/182834-fmx-style-editor.html)

Daniel 22. Nov 2014 07:19

AW: FMX Style Editor
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also: Was ist ein Style unter FMX?

Mit einem Style kann ich Aussehen und Struktur einer FMX-Komponente verändern, ohne deren Source zu ändern. Ein Style in diesem Zusammenhang ist weitaus mehr als ein Eimer voller Farbe, den man über einem Control auskippt, damit es rot, grün oder blau aussieht. So kann man damit zum Beispiel einem TListBoxItem sagen, das er nicht nur seine normale Caption hat, sondern etwa weitere Text-Objekte. Das geht, indem man diesem TListBoxItem einen eigenen Style zuweist, in dem diese weiteren Objekte definiert sind.

Es beginnt (in XE7) in jeder FMX-Komponente mit einem Rechtsklick auf dieselbige und dem Eintrag "Edit Custom Style...". Dann öffnet sich für diese Komponente der Style-Editor, der in der Tat ein seltsames Stück Software ist. Dort kann man sich aus der Komponenten-Palette weitere Elemente hinzuziehen, fast als würde man auf einem Form designen.

Die neuen Objekte lassen sich über Struktur-Ansicht und Objekt-Inspektor in der angemessenen Weise konfigurieren.

Klickt man auf "Apply & Close", so werden die Änderungen als neuer Style auf die zuvor ausgewählte Komponente übertragen.

Anhang 42185

In meinem Beispiel habe ich jetzt ein TListBoxItem, der sieben (!) weitere Text-Elemente besitzt. Auswählen kann ich dieses Layout über die Eigenschaft "StyleLookup" des ListBoxItems. Mein neuer Style heisst "ListBoxItem2Style1", der jetzt auch für alle anderen (!) TListBoxItems zu Verfügung steht.

Möchte man zur Laufzeit diesen neuen zusätzlichen text-Objekten einen Wert zuweisen, geht das über die Methode "FindStyleResource" der ListBoxItems. Als Parameter gibt man den Namen des gewünschten Elements an.

Delphi-Quellcode:
LText := ListBoxItem3.FindStyleResource('text2style') as TText;
  if Assigned(LText) then
    LText.Text := 'Moep';

Harry Stahl 22. Nov 2014 08:48

AW: FMX Style Editor
 
Ja genau, davon reden wir. Und für einige Dinge geht das eben einfacher mit Styles. Wenn ich z.B. bestimmte Buttons temporär mit Effekten versehen möchte (Glow- und / oder sonstige Effekte), dann weise ich eben einfach unter stylelookup den gewünschte style zu und die Komponente sieht dann so aus, wie gewünscht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz