AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Hintergrundfarbe von TMemo zur Laufzeit setzen, geschafft.
Thema durchsuchen
Ansicht
Themen-Optionen

Hintergrundfarbe von TMemo zur Laufzeit setzen, geschafft.

Ein Thema von Kostas · begonnen am 29. Dez 2016 · letzter Beitrag vom 29. Dez 2016
 
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.112 Beiträge
 
Delphi 12 Athens
 
#1

Hintergrundfarbe von TMemo zur Laufzeit setzen, geschafft.

  Alt 29. Dez 2016, 11:13
Hallo Zusammen,

in vielen Beispielen im Internet wird gezeigt wie die Hintergrundfarbe eines TButton oder TEdit gesetzt wird. Beide sollen ein TRectangle haben welche eingefärbt werden kann. Doch das TMemo hat eben kein TRectangle das direkt eingefärbt werden kann. Im Internet habe ich ein Stück Code gefunden wie dieses verdammte TRectangle erzeugt werden kann.
Den Code habe ich erweitert um die die Farbe zur Laufzeit zu setzen in Abhängigkeit zu den Daten.

Welche ein Aufwand um nur die Hintergrundfarbe zu setzen.
Wenn jemand einen besseren Weg kennt, bitte gerne.

Delphi-Quellcode:
procedure TfrMain.NachrichtApplyStyleLookup(Sender: TObject);
var Obj: TFmxObject;
    Rectangle1: TRectangle;
    i:integer;
    aColor:TAlphaColor;

begin
   inherited;

   //Grün wenn es eine neuen Nachricht ist, ansonsten weiß
   if dm1.FDNachrichtigen.FieldByName('status').AsInteger = 0
   then aColor := claGreen
   else aColor := claWhite;


   Obj := Nachricht.FindStyleResource('background');
   if Obj <> nil then
   begin

     //suche das bgColorRect wenn es gefunden wurde, Farbe ändern
     for i := 0 to Obj.ChildrenCount-1 do
     begin
       if ((Obj.Children[i].ClassType = TRectangle) and (Obj.Children[i].Name = 'bgColorRect'))then
       begin
         TRectangle(Obj.Children[i]).Fill.Color := aColor;

         exit;
       end;

     end;


     //Kein TRectangle vorhanden, neues anlegen
     TControl(Obj).Margins := TBounds.Create(TRectF.Create(-2, -2, -2, -2));
     Rectangle1 := TRectangle.Create(Obj);
     Rectangle1.Name := 'bgColorRect';
     Obj.AddObject(Rectangle1);

     Rectangle1.Align := TAlignLayout.Client;
     Rectangle1.Fill.Color := aColor;
     Rectangle1.Stroke.Color := claNull;
     Rectangle1.HitTest := False;
     Rectangle1.SendToBack;
   end;


end;

Gruß Kostas
  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 20:57 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