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
Antwort Antwort
Seite 1 von 2  1 2      
Medium

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

AW: [FMX] Edit färben

  Alt 18. Apr 2018, 15:47
Sehr schön für dich. Wie würdest du dann folgendes machen: Wir haben sehr oft Soll-/Ist-Wert Paare, durch welche Maschinenparameter eingestellt bzw. nachgesehen werden. Wir haben über die letzten ~20 Jahre bei dem Kunden werks-weit den Standard, dass Felder, in denen etwas vom Bediener eingegeben werden kann, Hellgelb hinterlegt sind durchgezogen. Somit weiß jeder dort bei jeder Anlage an jeder Bedienstation: Hellgelb = Ich muss da was eintragen. Die Ist-Wert-Ausgabe ist Weiß.
Wie kann ich nun Windows sagen, dass es manche Edits in unserem Soll-Wert-Stil zeichnen soll?

Anderer Fall: Ausgabe von Messwerten. Die Geräte geben oftmals nicht nur einen reinen Wert aus, sondern auch ein Störungssignal. Alle Bediener dort wissen: Wenn das Feld Rot hinterlegt ist, ist der Wert gestört und ein Elektriker muss anrücken. Oft sind diese Anzeigen auch an ohnehin schon recht wild aussehenden Stellen, sodass eine zusätzliche Anzeige (wohlmöglich noch mit Text) genau das Gegenteil von dem erreicht, was die ganze Schose soll: Übersichtlichkeit schaffen.
Wie teile ich dies meinem OS mit?

Dadurch, dass wir das in vielen Belangen in allen Teil-Anlagen bei dem Kunden durchgezogen haben, können die Mitarbeiter eines Betriebes z.B. bei Krankheit fast ohne Umstellung in allen anderen Betrieben bedienen. Wenn ich jetzt EINE von ~80 Bedienstationen anders mache. Ja rate mal was dann los ist.


Aber lass mal. Einen eigenen Button musste ich mir auch schon machen, da dieser ähnliche Probleme machte. Bald bin ich so weit, dass ich gar keine Standardkomponenten mehr einsetze. SO war das eigentlich nicht gedacht, als ich mich schweren Herzens doch kürzlich dazu entschieden habe doch wieder Delphi einzusetzen. Wenn ich eh alles zu Fuß neu machen muss...
"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
Benutzerbild von timog
timog

Registriert seit: 26. Sep 2006
Ort: Landkreis Oldenburg (Oldb)
117 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: [FMX] Edit färben

  Alt 18. Apr 2018, 17:01
Vielleicht noch ein Vorschlag: Ein TRectangle als Container für das TEdit nehmen? Ich meine damit, das TEdit in der Strukturansicht verschachteln - den Parent des TEdits auf das TRectangle ändern. Dann das StyleLookup des TEdits auf transparentedit. Damit wird die Fill.Color des TRectangle sichtbar und Du kannst über den Parent des TEdits die Farbe ändern, vereinfacht also etwa so:

(Edit1.ParentControl AS TRectangle).Fill.Color:=claAqua; Sind dann halt zwei Standardkomponenten aus denen man sich eine neue baut.
Timo
Real Programmers are surprised when the odometers in their cars don't turn from 99999 to 9999A.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#3

AW: [FMX] Edit färben

  Alt 18. Apr 2018, 17:07
Zitat:
Wie würdest du dann folgendes machen ...
Notfalls kannst du mit Umrandungen arbeiten (Blur/Glow), anstatt den Inhalt zu färben.

Nur in Grids/Listen geht sowas natürlich nicht für einzelne Felder.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (19. Apr 2018 um 16:20 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.210 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: [FMX] Edit färben

  Alt 18. Apr 2018, 18:23
Was heißt denn notfalls? Einen InnerGlow-Effekt drauf und gut ist. Wenn dir langweilig ist kannst du den sogar noch animieren.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: [FMX] Edit färben

  Alt 18. Apr 2018, 18:28
Könnte das helfen? Muss man halt nach Delphi portieren aber was ich da lesen ist nachvollziehbar. Auf OnPaint reagieren.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: [FMX] Edit färben

  Alt 18. Apr 2018, 18:38
Hallo,
mit dem Rechteck etwa so:

https://stackoverflow.com/questions/...-in-firemonkey
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#7

AW: [FMX] Edit färben

  Alt 20. Apr 2018, 09:32
Ja, so würde ich es auch machen.

Wenn Du dann dem in den Style eingefügten Rectangle den Stylenamen "RectangleStyleColor" gibst und zur Designzeit den jeweiligen Edits, die eine andere Hintergundfarbe benötigen, den entsprechenden StyleLookup für den Editstyle zugewiesen hast (z.B. "EditStyleColor"), kannst Du dem Retangle zur Laufzeit die benötigte Farbe zuweisen, mit Deiner Procedure von Nr. 1, nur etwas angepasst:

Delphi-Quellcode:
procedure SetEditColor(AEditControl: TCustomEdit; AColor: TAlphaColor);
var
  T: TFmxObject;
begin
  if Assigned(AEditControl) then
  begin
    T := AEditControl.FindStyleResource('RectangleStyleColor');
    if Assigned(T) and (T is TRectangle) then
       if Assigned(TRectangle(T).Fill) then
          TRectangle(T).Fill.Color := AColor;
    AEditControl.Repaint;
  end;
end;
Zur besseren Verständlichkeit ein kleines Demo anliegend (siehe auch screenshot), wo man zur Laufzeit dem aktiven Editfeld eine gewünschte Farbe zuweisen kann oder über die ausgewählte Farbe des Colorpickers.

Es sind natürlich auch noch andere Varianten möglich:

Den angelegten Style mehrfach kopieren und die Rectangels direkt mit den gewünschten Farben versehen. So kann man bereits zur Designzeit bestimmte Felder farblich gestalten. Zur Laufzeit könntest Du dann direkt mit dem StyleLookup-Property den gewünschten Style, bzw. Farbe zuweisen.
Angehängte Grafiken
Dateityp: jpg Edit.jpg (15,9 KB, 45x aufgerufen)
Angehängte Dateien
Dateityp: zip ProjectEdit.zip (56,1 KB, 37x aufgerufen)

Geändert von Harry Stahl (20. Apr 2018 um 09:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#8

AW: [FMX] Edit färben

  Alt 20. Apr 2018, 09:45
Ich verstehe nur nicht was daran so schwer ist, die Farbproperty z.B. crNone crDefault einzurichten und wenn das abweicht (dort etwas angegeben wurde), dann nimmt der Style diese Frabe, anstatt seiner eigenen.

Diese "umständlichen" und extrem unintuitiven Krücken können doch nicht wahr sein und vor allmem, wozu gibt es dann überhaupt diese Property, wenn die niemand beachtet?



PS: Und jetzt mal versuchen mit "nativen" Komponenten zu arbeiten, anstatt mit diesem selbstgemalten Zeug und seinen "schrottigen" Styles.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#9

AW: [FMX] Edit färben

  Alt 20. Apr 2018, 12:12
Ich verstehe nur nicht was daran so schwer ist, die Farbproperty z.B. crNone crDefault einzurichten und wenn das abweicht (dort etwas angegeben wurde), dann nimmt der Style diese Frabe, anstatt seiner eigenen.

Diese "umständlichen" und extrem unintuitiven Krücken können doch nicht wahr sein und vor allmem, wozu gibt es dann überhaupt diese Property, wenn die niemand beachtet?
Emba nimmt gerne Verbesserungsvorschläge entgegen. Wie wäre es hier mit einem entsprechenden Vorschlag von Dir?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#10

AW: [FMX] Edit färben

  Alt 20. Apr 2018, 14:16
Ich antworte hier mal auf alle zusammen, jeden einzeln "durchquoten" würde etwas viel

Alle Lösungen die zusätzliche Komponenten erfordern (Transparent+Rect, Effekte) scheiden aus weil dadurch meine Datenversorgung ziemlich verkompliziert wird. Ich müsste quasi immer gucken ob ich die Farbe überhaupt setzen will, wenn ja ob es ein passendes Child- und/oder Parent-Objekt gibt, und stattdessen dann dieses nehmen. Geht zwar, würde aber wirklich fummelig im Rahmen meines sonstigen Frameworks und beim Formularbauen sehr unhandlich. (Randfrage: Überstrahlt das Glow dann nicht auch den Text?)

Die Lösungen von SO sind ja im Wesentlichen das, was ich schon probiert hatte. Das Problem bei den Styles ist ja, dass mir wie gesagt die Funktion FindStyleResource() mit nil zurück kommt. So kann ich da leider keinem Rectangle etwas zuweisen. Wenn DAS ginge, dann wäre mein Problem auf akzeptable Weise gelöst. (Eine statische Farbe kann ich so zwar machen, aber ich muss sie zur Laufzeit ändern können. Das ist das wichtigste.)

Beim OnPaint habe ich das Gefühl, dass mir da viel flöten geht was mir das OS abnimmt. Zum Beispiel wird bei der gezeigten Variante die Markierung überhaupt nicht gezeichnet wenn ich das richtig sehe. Das wäre verdammt nahe am ganz eigenen Edit, und wenn dann würde ich gleich zu letzterem tendieren weil man dann wirklich alles in der Hand hätte.

Ich probiere aber mal, wie das ist wenn ich nicht die originale "background"-Komponente im Style austausche, sondern ein Rectangle als Child von "content", wie in einem Beispiel gezeigt. Vielleicht finde ich das dann ja zur Laufzeit...

Danke euch!
"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
Antwort Antwort
Seite 1 von 2  1 2      


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 09:43 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