![]() |
[FMX] Stringgrid / Grid Zelle Färben
Hallo,
Ich weiss, dass es hier dieses Thema schon zu hunderten gibt, aber entweder war ich zu blöd das richtige zu finden oder das ist wirklich alles nur für VCL, was mir nicht weiter hilft. Ich muss in einer Spalte die Zellen je nach Inhalt einfärben (so a la Ampel in grün, gelb oder rot). Soweit so gut. Um mit der Zelle zu Interagieren gehe ich über das onDrawCell - Event. An den Inhalt komme ich ja nun über Value ran. Kein Problem. Jetzt habe ich nur das Problem, das ich die Zelle irgendwie einfärben muss. Da habe ich schon eine Ganze menge Probiert, es hat bisher aber noch nichts ansatzweise funktioniert! Folgendes Habe ich probiert:
Delphi-Quellcode:
procedure TfrmProjekt.GRD_ProjektDrawColumnCell(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const [Ref] Bounds: TRectF; const Row: Integer; const [Ref] Value: TValue; const State: TGridDrawStates); begin Canvas.Fill.Color := TAlphaColorRec.Yellow; End;
Delphi-Quellcode:
Ich habe auch einige Lösungen gefunden, welche auf die Eigenschaft "CellControlByRow" zugreifen, welche es aber in FMX scheinbar nicht gibt!
procedure TfrmProjekt.GRD_ProjektDrawColumnCell(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const [Ref] Bounds: TRectF; const Row: Integer; const [Ref] Value: TValue; const State: TGridDrawStates); begin GRD_Projekt.Canvas.Fill.Color := TAlphaColorRec.Yellow; GRD_Projekt.Canvas.FillRect(Bounds); End; Hat hier jemand eine Idee? |
AW: [FMX] Stringgrid / Grid Zelle Färben
Bin zwar kein FMX-Spezialist hab das aber mal kurz probiert:
Delphi-Quellcode:
und scheint zu klappen...
procedure TForm2.StringGrid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer;
const Value: TValue; const State: TGridDrawStates); begin if (Row=2) And (Column=StringColumn1) then begin Canvas.Fill.Color := TAlphaColorRec.Yellow; Canvas.FillRect(Bounds, 0, 0, [], 100, Canvas.Fill); end; end; |
AW: [FMX] Stringgrid / Grid Zelle Färben
Danke, war dementsprechend wohl einfach zu blöd Canvas.FillRect richtig zu verwenden .-.
Vielen Dank, das Funktioniert genau wie gehofft. |
AW: [FMX] Stringgrid / Grid Zelle Färben
Verstehe zwar nicht was du vorhast, aber warum nimmst du nicht die Styles-System dafür ?
Das ist genau für solche Dinge gedacht, und man kann einiges anpassen. Rollo |
AW: [FMX] Stringgrid / Grid Zelle Färben
Es geht darum, die Farbe der Zelle je nach inhalt zu ändern.
Es ist eine Tabelle, in welcher eine Spalte eine "Ampel" darstellt. Hier wird die Zelle z.B. grün gefärbt, wenn der Wert unter 50 % ist, zwischen 50 % und 100 % wird sie Gelb dargestellt und bei über 100 % dann Rot. Wenn dass auch mit dem Styles - System geht, wäre das natürlich auch super, müsste man mir nur verraten, wie das Geht. |
AW: [FMX] Stringgrid / Grid Zelle Färben
Also du nutzt FMX, richtig ?
Da würde ich dann vielleicht etwas aus geometrischen Shapes zusammenbauen, wie TRectangle, TPath, etc. Die kann man wunderbar grafisch kombinieren, und auch die Farben ändern. Mit Styles geht sowas natürlich auch, da geht es aber gleich um die ganze Anwendung. Rollo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 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