Farbe der stringgrid-Spalte je nach columnname text
Ich bin, dies zu tun :
procedure TForm1.BitBtn1Click(Sender: TObject);
var dtStart: TDateTime;
I: Integer;
begin
dtStart := DateTimePicker1.Date;
for I := 0 to 7 do
AdvStringGrid1.Cells[I+1, 0] := uppercase(FormatDateTime('DD/MM/YYYY DDD', dtStart + I));
end;
Gibt es eine Möglichkeit, die Farbe einer Spalte, wenn (Beispiel), Sonntag (SUN) erscheint? Ich möchte die SONNE-Spalte (ganz unten) erscheinen in einer anderen Farbe als der rest.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies mit Hilfe der
OnDrawCell
Ereignis (tun nicht setDefaultDraw
False). Hier ist ein Beispiel mit einem regelmäßigenTStringGrid
:Beispiel für die Ausgabe von den genauen code oben:
Hier ein zweites Beispiel, dass sich die Ausgaben nur genau das, was Sie wollen (außer, dass ich nicht zu konvertieren, die SONNE zu Kappen):
Hier ist die Aufnahme entsprechen, die ein zweites Beispiel:
Sun
(gefunden durch die Verwendung vonPos
im code oben), nicht nur aktive Zellen. Sie TUN müssen, passen Sie den code entsprechend Ihrer Bedürfnisse; das, was ich geschrieben war ein Beispiel, wie es zu tun, aber es ist nur ein Ausgangspunkt. 🙂Col > 0 and Row > 0
, was entfernt, die Zellen fixiert, und passen Sie den code entsprechend ändernPos
zu checken, was in die Feste Zeile oder Spalte, die Sie möchten, um zu testen, fürSUN
). Möchten Sie die Farbe der Zellen in die gesamte Spalte oder nur die überschrift der Spalte? Können Sie klären, welche es ist? Danke. 🙂Mit der DrawCell-Verfahren ist der Weg zu gehen. Dieses Beispiel behandelt die Möglichkeit, dass die Spalte mit "Sonne" könnte in einer beliebigen Spalte. Lassen Sie DefaultDrawing auf den Standardwert true.