Einzelnen Beitrag anzeigen

Benutzerbild von milos
milos
Online

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
508 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Sind Styles brauchbar?

  Alt 19. Sep 2023, 13:31
Ich finde FMX Styles eigentlich schon ziemlich gut. Ein Custom Style zu erstellen funktioniert meiner Meinung nach um einiges besser und einfacher als mit VLC oder ähnlichen UI-Frameworks, die nicht auf Web-Technologien aufbauen.

Leider fehlen ein paar Dinge, wie Variablen für Farben, Textgrößen usw.

Ich habe deswegen vor einigen Monaten ein kleines Programm geschrieben, welches "CSS"-artigen Source Code nimmt und in Firemonkey's TStyleBook umwandelt. Dies kann zur Laufzeit gemacht werden, oder man kann das generierte Stylebook auch in eine Datei abspeichern und dann in der Delphi IDE laden.

Es unterstützt alle Controls, Custom Variablen für Farben und Größen, Vererbung, "Macros" (z.B. "!Margin", der den Margin gleich für Top, Right, Bottom und Left setzt), Animationen/States (Property => {} Struktur), Kommentare usw.

Eine Button Style definition sieht dann ungefähr so aus:

Code:
TRectangle #buttonstyle { 
  !Radius: @radius-controls;
  Stroke.Thickness: 0;
  Stroke.Color => {
    default: @bg-ui-5;
    active: @bg-ui-2;
  }
  Fill.Color:@bg-ui-4;

  TRectangle { 
    !Radius: @radius-controls;
    Stroke.Thickness: 0;
    Fill.Color: @color-primary;  
    Opacity => {
      default: 0;
      hover: 0.4;
    }
  }
       
  TRectangle { 
    !Radius: @radius-controls;
    Stroke.Thickness: 0;
    Fill.Color: @color-primary;  
    Opacity => {
      default: 0;
      active: 1;
    }
  }
                       
  TText #text {             
    TextSettings.FontColor: @color-text;
  } 
}
Es ist ziemlich ähnlich wie CSS aufgebaut, hat aber ein paar kleine Unterschiede und man muss grundsätzlich wissen wie das FMX styling system funktioniert um es Anwenden zu können.

Bilder der Demo Anwendung mit den Styles findet man im Anhang. Der einzige unterschied zwischen den Bildern sind die Variabeln für die Farben.

Sollte jemand interesse daran haben das System selbst auszuprobieren oder anzuwenden kann man mir gerne eine PN schreiben. Ich wollte dies mal ganz öffentlich auf GitHub posten, kam aber leider nie dazu den Code zu verbessern und ein paar Bugs zu beseitigen...

Freundliche Grüsse
Miniaturansicht angehängter Grafiken
image-1-.png   image-2-.png   image-4-.png  
Milos

Geändert von milos (19. Sep 2023 um 13:42 Uhr)
  Mit Zitat antworten Zitat