AGB  ·  Datenschutz  ·  Impressum  







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

[FMX] Edit färben

Ein Thema von Medium · begonnen am 18. Apr 2018 · letzter Beitrag vom 20. Apr 2018
 
Medium

Registriert seit: 23. Jan 2008
3.687 Beiträge
 
Delphi 2007 Enterprise
 
#1

[FMX] Edit färben

  Alt 18. Apr 2018, 15:26
Huhu DP.

FMX, oder genauer gesagt die Styles, machen mich eines Tages noch malle im Kopp. Ich portiere gerade eine unserer Anwendungen von D2007 auf 10.2.3 mit FMX. In unserem Programm wird über die Farbe des Hintergrundes von Edits eine Menge an Infos an die User gegeben. (Spezialanwendung für geschultes Fachpersonal, bitte keine Diskussion über "...aber Standard!!".)

Das tolle am FMX.TEdit: Es hat gar keine Color-Property mehr! Also bin ich auf die Suche gegangen, und habe den folgenden Schnipsel aufgetrieben:
Delphi-Quellcode:
procedure SetEditColor(AEditControl: TCustomEdit; AColor: TAlphaColor);
var
  T: TFmxObject;
begin
  if Assigned(AEditControl) then
  begin
    T := AEditControl.FindStyleResource('background');
    if Assigned(T) and (T is TRectangle) then
       if Assigned(TRectangle(T).Fill) then
          TRectangle(T).Fill.Color := AColor;
    AEditControl.Repaint;
  end;
end;
"Geil!", dachte ich mir, Problem gelöst! Zwar sehe ich dann beim Editieren des Formulars manche Farben nicht mehr, aber sei's drum.

Dann aber habe ich das mal ausführen lassen, und musste feststellen, dass da nichts geändert wurde. Kurzes Debuggen: FindStyleResource() kommt mit nil zurück. Mal den Style eines Edits im StyleEditor aufgerufen, und siehe da: Es GIBT eine Ressource mit dem Namen "background". Warum wird diese dann nicht gefunden?

Aber es kommt noch schlimmer. Die o.g. Prozedur ist offenbar für ein älteres Delphi geschrieben. Für eines, wo TEdit noch mit einem TRectangle gestyled wurde. In 10.2.3 aber ist der Typ des "background"-Objektes "TActiveStyleObject", und darin wird auf ein Bitmap verwiesen!
Ja wie bescheuert ist DAS denn!? Da hat man ein tolles vektorbasiertes GUI Framework, und holt sich durch die Hintertür wieder klobige Rasterbilder ins Boot? Wer kam auf den Quark? Und NOCH viel schlimmer ist: Wie soll man den JETZT bitte noch die Farbe ändern? Soll ich nun für alle meine ~8 Farben einen eigenen Style machen (mit einem völlig unterentwickelten Style-Designer)? Bevor ich mich mit dem Kram nochmals herum ärgere, schreibe ich mir fast lieber meine eigene Edit-Komponente...

Aber lieber wäre es mir ja, wenn jemand hier noch einen guten Rat für mich hätte, wie es ggf. doch geht. Vor allem weil ich sehr gerne auch die TNumberBox für rein numerische Eingaben in ähnlicher Weise behandeln möchte.

Oder gibt es ggf. für günstig Edits die solche Funktionalität auch bieten und ... deren Farbe man gnädigerweise ändern darf?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
 


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 06:37 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