Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi 11 FMX Benutzerdefinierte Style (https://www.delphipraxis.net/209425-delphi-11-fmx-benutzerdefinierte-style.html)

Rapunzel 4. Dez 2021 11:10

Delphi 11 FMX Benutzerdefinierte Style
 
Hallo,

ich versuche mich gerade in meiner Freizeit in das FMX Framework einzuarbeiten. Das Konzept der Style habe ich soweit verstanden. Mit einigen Details bzw. den Zusammenhängen wann was wie in der IDE passiert, wenn ich einen benutzerdefinierten Style erstellen möchte, habe ich Schwierigkeiten.

Ich habe ein neues FMX Projekt mit einem Button und einem Stylebook erstellt. Das Stylebook ist dem Formular zugewiesen. Jetzt weise ich dem Stylebook den Android Style MaterialOxfordBlueSE zu. In der Styles Collection sehe ich jetzt die Einträge Default und Android. Das heißt mein neuer Style gilt jetzt nur für die Plattform Android, richtig? Wähle ich Style Android aus, sehe ich das erwartete Ergebnis, alles schön dunkel.

Jetzt wähle ich einen Button aus, öffne das Kontextmenü und klicke benutzerdefinierten Styl bearbeiten... an. Der Styldesigner wird geöffnet und ab jetzt bin ich bin etwas verwirrt. Links gibt es wie erwartet (nur) den neuen Style Button1Style1. Aber unter Plattform ist plötzlich AndroidL Light ausgewählt. Der Button in der Vorschau entspricht dem Standardstyle und nicht dem Dark Style. Wähle ich nun Plattform Android aus, werden links alle Styles angezeigt. In der Liste finde ich dann auch meinen neuen Button1Style1. Ändere dort testweise die Textcolor und speichere das Ergebnis beim Schliessen, ändert der Text meines Buttons auch wie gewünscht die Farbe und der benutzerdefinierte Style ist meinem Button zugewiesen. Aber im StyleBook taucht jetzt in der Collection ein weiterer Style AndroidL Light auf, den ich eigentlich gar nicht verändern wollte. Den Style kann ich ohne Weiteres löschen. Mein neuer ButtonStyle bleibt erhalten. Öffne ich erneut den Style Designer, beginnt allerdings das Spielchen von Vorne.

Ich habe auch schon versehendlich unter Platform AndroidL Light den benutzerdefinierten Styl gespeichert. Dieser wird dann meinem Button zugewiesen. Wenn das der Fall ist, werden im Kontextmenü die Einträge zum Bearbeiten des Styls nicht mehr angezeigt. Unter Stylelookup ist dieser benutzerdefinierte Styl jedoch nicht auswählbar. Erst wenn die Stylzuweisung lösche, stellt sich das Kontextmenü wie erwartet dar. Aber wo in meinem Projekt geistert dieser Style jetzt rum?

Mache ich hier grundsätzlich was falsch oder muss ich mit diesem Verhalten der IDE leben?

Viele Grüße

Rapunzel 4. Dez 2021 15:57

AW: Delphi 11 FMX Benutzerdefinierte Style
 
Ich habe inzwischen einen für mich gangbaren Weg gefunden, um unter Windows und Android die gleichen benutzerdefinieren Style anlegen zu können. Keine Ahnung ob das so im Sinne des Erfinders ist, funktioniert aber.

TurboMagic 4. Dez 2021 16:47

AW: Delphi 11 FMX Benutzerdefinierte Style
 
Magst du den Weg auch mit uns teilen?

CHackbart 4. Dez 2021 22:14

AW: Delphi 11 FMX Benutzerdefinierte Style
 
Ich denke mal er hat in der Style-Datei die vorgegebene Plattform gelöscht.

Rapunzel 5. Dez 2021 09:40

AW: Delphi 11 FMX Benutzerdefinierte Style
 
Genau, Delphi hat mir, als ich den Android Style MaterialOxfordBlueSE dem Projekt hinzugefügt habe, noch den Default Style hinzugefügt. Der enthält den Style AndroidL Light.

Für Default Style habe ich den entsprechenden Windows Stylevorlage MaterialOxfordBlueSE geladen. Damit funktioniert es soweit. Ich erstelle aktuell meine benutzerdefinierten Style für Plattform Windows. Wenn mir der Style optisch gefällt, kopiere ich den benutzerdefinierten Style in die Android Plattform.

Dazu noch eine Frage: Gibt es eine Möglichkeit, für alle Plattformen die gleichen Stylevorlage zu verwenden? Ich würde mir gern die Kopieraktion sparen. Das UI der Windows App soll exakt identisch mit der Andriod App sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:42 Uhr.

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