![]() |
[XE5] Firemonkey TButton Style zur Laufzeit ändern
Hallo, ich mache gerade meine ersten Gehversuche mit Firemonkey mobile, und bräuchte eine kleinen Dankanstoß.
Ich möchte den Style eines TButtons zur Laufzeit ändern. Mein erster Versuch war, das TStylebook bearbeiten zu wollen, da dies nicht direkt ging, hab ich es in die Datei xx.style abgespeichert, und wollte manuell einen Eintrag zu kopieren und einen neuen hinzufügen und "buttonstyle" in "buttonstyle1" umzubennen. Nach dem Laden des Styles wurde aber "buttonstyle1" nicht angezeigt, das funktioniert also nicht. Hab allerdings nicht verstanden, warum? mein neuer Versuch war, ein zweites Stylebook aufs Formular zu legen, um dort einen "roten" Button im Style zu kreieren. Aber wie kann ich nun dem einzelnen Button den Style zuweisen, ohne das alle anderen Buttons davon betroffen sind? Vielen Dank!
Delphi-Quellcode:
object TLayout
StyleName = 'buttonstyle' DesignVisible = False Height = 26.000000000000000000 Position.X = 384.000000000000000000 Position.Y = 488.000000000000000000 Width = 73.000000000000000000 object TRectangle StyleName = 'background' Align = alContents Fill.Kind = bkGradient Fill.Gradient.Points = < item Color = xFF505050 Offset = 0.000000000000000000 end item Color = xFF303030 Offset = 1.000000000000000000 end> Locked = True Height = 26.000000000000000000 HitTest = False Stroke.Color = xFF222222 XRadius = 3.000000000000000000 YRadius = 3.000000000000000000 Width = 73.000000000000000000 object TColorAnimation Duration = 0.200000002980232200 PropertyName = 'Fill.Color' StartValue = xFF505050 StopValue = xFF707070 Trigger = 'IsMouseOver=true;IsPressed=false' TriggerInverse = 'IsMouseOver=false;IsPressed=false' end object TColorAnimation Duration = 0.200000002980232200 PropertyName = 'Fill.Color' StartValue = xFF707070 StopValue = xFF404040 Trigger = 'IsPressed=true' TriggerInverse = 'IsPressed=false' end end |
AW: [XE5] Firemonkey TButton Style zur Laufzeit ändern
Der iOS Style wird immer geladen. Daher musst Du Deinen Style umbenennen und den Namen dann im StyleLookup des Buttons eintragen. Dem Elternformular des Buttons ist dann das Stylebook zuzuweisen.
|
AW: [XE5] Firemonkey TButton Style zur Laufzeit ändern
Zitat:
Wenn ich dem Elternformular ein alternatives Stylebook zuweise, dann ändert sich leider die Farbe aller TButtons. Irgendwie lässt sich aber das Stylebook auch nicht bearbeiten, so dass ich den oben gezeigten "Text" hinzufügen könnte. Im Moment probiere ich mit Android. Oder könntest Du denn vielleicht bitte eine kleine Demo App zusammenklicken, für eine "firemonkey mobile" . Kleine App mit zwei TButtons mit 2 verschiedenen Farben? Danke, falls Du soviel Zeit haben solltest. Gruß stoxx |
AW: [XE5] Firemonkey TButton Style zur Laufzeit ändern
Liste der Anhänge anzeigen (Anzahl: 2)
Anbei die App. Hat 3 verschiedene Button-Styles:
und die werden alle gleichzeitig und korrekt angezeigt. |
AW: [XE5] Firemonkey TButton Style zur Laufzeit ändern
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
ich habe jetzt zur Style Datei ein ein TLayout "BlueRoundButtonStyle" hinzugefügt. Und obwohl ich in die die Property vom Button2 "BlueRoundButtonStyle" eingetragen hat, bleibt der Button Grau ohne Style. im StyleLookUp steht auch nach einem Neustart der IDE "BlueRoundButtonStyle" nicht zur Verfügung. Die MobileStyles.style sieht derzeit so aus:
Delphi-Quellcode:
object TStyleContainer
object TLayout StyleName = 'RedRoundButtonStyle' DesignVisible = False Height = 52.000000000000000000 Position.X = 424.000000000000000000 Position.Y = 494.000000000000000000 Width = 118.000000000000000000 object TRoundRect StyleName = 'background' Align = alContents Fill.Kind = bkGradient Fill.Gradient.Points = < item Color = xFFD40F0F Offset = 0.108974359929561600 end item Color = claWhite Offset = 1.000000000000000000 end> Fill.Gradient.StartPosition.X = 0.500000000000000000 Fill.Gradient.StartPosition.Y = 1.000000000000000000 Fill.Gradient.StopPosition.X = 0.499999970197677600 Fill.Gradient.StopPosition.Y = 0.000000000000000000 Height = 52.000000000000000000 Width = 118.000000000000000000 object TInnerGlowEffect StyleName = 'InnerGlowEffect' Softness = 0.400000005960464500 GlowColor = xFF4F4848 Opacity = 0.899999976158142100 Trigger = 'IsPressed=true' end end object TText StyleName = 'text' Align = alContents Color = claWhite Height = 52.000000000000000000 Text = 'AAA' Width = 118.000000000000000000 end end object TLayout StyleName = 'BlueRoundButtonStyle' DesignVisible = False Height = 52.000000000000000000 Position.X = 424.000000000000000000 Position.Y = 494.000000000000000000 Width = 118.000000000000000000 object TRoundRect StyleName = 'background' Align = alContents Fill.Kind = bkGradient Fill.Gradient.Points = < item Color = xFF0F0FD4 Offset = 0.108974359929561600 end item Color = claWhite Offset = 1.000000000000000000 end> Fill.Gradient.StartPosition.X = 0.500000000000000000 Fill.Gradient.StartPosition.Y = 1.000000000000000000 Fill.Gradient.StopPosition.X = 0.499999970197677600 Fill.Gradient.StopPosition.Y = 0.000000000000000000 Height = 52.000000000000000000 Width = 118.000000000000000000 object TInnerGlowEffect StyleName = 'InnerGlowEffect' Softness = 0.400000005960464500 GlowColor = xFF48484F Opacity = 0.899999976158142100 Trigger = 'IsPressed=true' end end object TText StyleName = 'text' Align = alContents Color = claWhite Height = 52.000000000000000000 Text = 'AAA' Width = 118.000000000000000000 end end end |
AW: [XE5] Firemonkey TButton Style zur Laufzeit ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich habe Deinen blauen Button in mein Stylebook eingefügt und es funktioniert bestens. Was steht bei Dir in Form1.StyleBook (Siehe mein erster Post - Dem Elternformular des Buttons ist dann das Stylebook zuzuweisen)? Leider fhlt die f,x Datei in Deinem Zip, so dass ich hier nur raten kann.
|
AW: [XE5] Firemonkey TButton Style zur Laufzeit ändern
Zitat:
Nur, warum geht das jetzt? Ich hatte vorhin mit einem umfangreichem Stylebook genau das gleiche probiert, und da konnte er das Stylebook nicht laden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz