![]() |
Firemonkey Stylebook und Style dynamisch generieren
Hallo,
Gibt es eine Möglichkeit das Stylebook des Formulars und dessen Standardstyles für Komponente dynamisch generieren zu lassen? Also so das man zur Laufzeit die Styles bearbeiten kann. Freundliche Grüsse |
AW: Firemonkey Stylebook und Style dynamisch generieren
Wenn du mit Bearbeiten laden oder Umschalten meinst, ja das geht.
Entweder mehrere Stylebooks umschalten, oder mit dem ![]() Womöglich geht auch das Editieren, denn die Styles sind nur primitive Objekte, aber das ist ziemlich frickelig. Rollo |
AW: Firemonkey Stylebook und Style dynamisch generieren
Zitat:
Freundliche Grüsse |
AW: Firemonkey Stylebook und Style dynamisch generieren
Über die OnUpdateObjects Events kommst du an die Style-Elemente ran, siehe auch
![]() ![]() An anderer Stelle habe ich mal sowas ausprobiert, s.u. Also über die StyleNamen kommst du an die Elemente ran, und weil das normal Objekte sind solltest du eigentlich auch zur Laufzeit Editieren, Einfügen, Löschen, etc. können. Es ist auch so das du einfach ein Control nehmen kannst, machst daraus einen speziellen Style, und vergibst einen StyleName "MeinStil". Das wird dan über den StyleName bekannt gemacht, und du kannst diesen Prototypen sofort bei anderen Controls verwenden. Aber dafür einen Editor zu schreiben .... Das ist mühsam. Schau doch mal bei ![]() ![]() Rollo
Delphi-Quellcode:
function Styles_Apply_Get(const obj : TListBoxItem; smStyleMode : TS4StyleMode;
sParam : Single; var sTxt : TText; var sDet : TText; var sImg : TGlyph) : Boolean; var fmxImg : TFmxObject; fmxTxt : TFmxObject; fmxDet: TFmxObject; fmxMore: TFmxObject; sMore: TGlyph; begin Result := False; sTxt := nil; sDet := nil; sImg := nil; if not Assigned(obj) then Exit; if (obj is TListBoxItem) then begin fmxTxt := (obj as TListBoxItem).FindStyleResource('text'); fmxDet := (obj as TListBoxItem).FindStyleResource('accessorydetail'); fmxImg := (obj as TListBoxItem).FindStyleResource('glyphstyle'); fmxMore := (obj as TListBoxItem).FindStyleResource('accessorymore'); case smStyleMode of smClientWithBottomText : begin if Assigned(fmxTxt) and (fmxTxt is TText) then begin sTxt := fmxTxt as TText; sTxt.Align := TAlignLayout.Bottom; //sTxt.Height := 32; sTxt.TextSettings.HorzAlign := TTextAlign.Center; sTxt.TextSettings.VertAlign := TTextAlign.Trailing; sTxt.TextSettings.WordWrap := True; end; if Assigned(fmxDet) and (fmxDet is TText) then begin sDet := fmxDet as TText; sDet.Align := TAlignLayout.Bottom; //sTxt.Height := 32; sDet.TextSettings.HorzAlign := TTextAlign.Center; sDet.TextSettings.VertAlign := TTextAlign.Trailing; sDet.TextSettings.WordWrap := True; end; end; smLeft: begin if Assigned(fmxTxt) and (fmxTxt is TText) then begin Result := True; end; if Assigned(fmxDet) then begin // sDet := TText(fmxDet); end; end; end; if Assigned(fmxImg) and (fmxImg is TGlyph) then begin sImg := fmxImg as TGlyph; // TListItemImage; sImg.Align := TAlignLayout.Client; sImg.Margins := TBounds.Create( RectF(sParam, sParam, sParam, sParam) ); ebd; if Assigned(fmxMore) and (fmxMore is TGlyph) then begin sMore := fmxMore as TGlyph; // TListItemImage; end; end; end; |
AW: Firemonkey Stylebook und Style dynamisch generieren
Danke ist zwar leider nicht zu 100% wie ich es mir erhofft habe aber konnte es über einen kleinen Umweg gut lösen ^^
Nein soll kein Editor werden, nur eine kleine aber feine einstellungsmöglichkeit für ein tool :D Freundliche Grüsse |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 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-2025 by Thomas Breitkreuz