AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FireMonkey & Styles

Ein Thema von stahli · begonnen am 30. Jan 2013 · letzter Beitrag vom 31. Jan 2013
Antwort Antwort
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#1

FireMonkey & Styles

  Alt 30. Jan 2013, 21:58
Das Konzept der Styles unter FMX wird mir immer suspekter.

Wenn man einen BitBtn unter VCL konstruiert baut man verschiedene Komponenten zusammen oder zeichnet direkt auf den Canvas.
Die wichtigen Eigenschaften werden veröffentlicht und so kann man z.B. ein neues Bitmap zuweisen.

Unter FMX baut man "LayoutControls" zusammen, was der o.g. Verfahrensweise ähnelt, nur dass man dies im Designer realisieren kann.
Dafür kommt man an die Unterkomponenten später nur heran, indem man diese mit FindeStyleResource sucht (ähnlich FindComponent).

Ich bin nicht ganz sicher, aber es reicht wohl nicht, z.b. die Farbe der Resource einmalig zu ändern, sondern das muss man wohl im Ereignis UpplyStyleLookup tun.
Delphi-Quellcode:
procedure TForm1.Panel1ApplyStyleLookup(Sender: TObject);
var
  Back: TFmxObject;
begin
  inherited;
  Back := FindStyleResource('panelstyle'); // wird aber nicht gefunden ... Result = nil // SameText lässt sich aber nicht debugen
// if (Back = nil) and (FResourceLink is TCalloutRectangle) then
// Back := FResourceLink;
  if (Back <> nil) and (Back is TRectangle) then
  begin
    TRectangle(Back).Fill.Color := claRed;
  end;
end;
Man hat aber wohl ohne genaue Kenntnisse des verwendeten Styles keine wirkliche Chance an die Eigenschaften heran zu kommen.
Wenn ein neuer/fremder Style zugewiesen wird kann das wieder zu völlig neuen Eigenschaften führen.

Das ist schon alles verwirrend genug - aber:

Wenn man Controls von anderen Controls ableitet, können die Styles "verloren gehen".
Hier habe ich eine Beschreibung des Problems: http://www.delphipraxis.net/1200494-post133.html
Anbei auch 2 Screenshots meiner Gitterkomponente.
- Im ersten Bild sind als Zellen einfache Panels eingesetzt, was der erwarteten Optik entspricht.
- Im zweiten Bild benutze ich Ableitungen des Panels. Der Panel-Style geht da plötzlich verloren. Zufällig passt das zwar für meine Zwecke aber plausibel ist das nicht.


Warum ist das so kompliziert gelöst?
So eine starke Flexibilität macht für die alltäglichen Anforderungen wenig Sinn.
Die ständige Suche nach den Layout-Komponenten kostet Zeit.
Die üblicherweise benötigten Eigenschaften sind nicht sofort erreichbar.
Für spezielle Anforderungen könnte man Ableitungen eines Controls bauen.
Stattdessen sind die tatsächlich verwendeten Styles mehr oder weniger unvorhersehbar.
Man kann ja nicht mal mit Sicherheit sagen, welche Styles für ein Control überhaupt verfügbar sind.

Irgendwie durchschaue ich das Konzept noch nicht...


EDIT: Sinnvoll fände ich Styles im Sinne eines Skinnings. So dass man also unterschiedliche Linien, Farben, Füllmuster und ggf. Bitmaps hinterlegen kann, die dann Projektweit verwendet werden. Wie ist das eigentlich technisch in der VCL gelöst? Arbeitet man da jetzt auch mit FindStyleResource?

EDIT2: Oder sollte man die Styles eher wieder abschaffen? Aber während man die LiveBindings ganz gut ersetzen kann sind die Styles ja ein Basískonzept des FMX. So als Paket macht mich das gerade etwas ratlos.

Was ist Eure Meinung (speziell halt zu den Styles) ?
Miniaturansicht angehängter Grafiken
fmpanel.jpg   fmpanel2.jpg  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (31. Jan 2013 um 00:43 Uhr)
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: FireMonkey & Styles

  Alt 31. Jan 2013, 12:50
=> http://www.delphipraxis.net/162660-f...ml#post1194264
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: FireMonkey & Styles

  Alt 31. Jan 2013, 12:58
Den Thread kenne ich. Oder meinst Du dort einen bestimmten Beitrag?

(Ich hätte gern das Style-Konzept explizit diskutiert, ohne dass es in dem Sammelthread untergeht.)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: FireMonkey & Styles

  Alt 31. Jan 2013, 13:10
"
[...] die Styles sind nicht durchdacht. Ich muss z.B. für ein Listview den Style verändern, allerdings darf ich ihn anschließend nicht mehr wechseln, sonst sind auch meine Listview Einträge mit weg. Wer hat sich sowas bitte das ausgedacht?
"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 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