Registriert seit: 8. Nov 2006
1.360 Beiträge
Delphi 10.3 Rio
|
Re: Hintergrundfarbe einzelner Zellen im Stringgrid ändern.
10. Okt 2008, 12:49
Tachsche
Guckmal hier hab ich was für dich, dein StringGrid hat ein ereigniss OnDrawCell, da Kopierst du das rein
Die Spaltenzahl erhöst du mal auf 12 und wenn du das gemacht hast, gib mal "ja" in eine Zelle ein, vorher natürlich die Farben setzen.
viel spass damit
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
Var Celltext :string;
Farbe: boolean;
StC: TCanvas;
begin
StC := StringGrid1.Canvas;
With (Sender As TStringGrid) do
begin
Textformat := DT_SINGLELINE;
Celltext := Cells[ACol, ARow];
Farbe := True;
//Text wird zentriert
Textformat := Textformat Or DT_CENTER Or DT_VCENTER;
if (ACol = 1) Or (ACol = 0) Then {//Zentrieren für spalten 1 und 0}
begin
StC.Font.Style := StC.Font.Style + [fsBold]; //Text fett
end;
if (ACol > 1) and (ACol < 11)then
begin
begin
if LowerCase(Cells[ACol, ARow]) = 'Ja' then
begin
StC.Brush.Color := //Deine Zellenfarbe
StC.Font.Color := // Deinen Zellen Schriftfarbe
Canvas.Font.Style := StC.Font.Style + [fsBold]; //Text fett
end;
end
begin
if (Farbe) then
begin
//Zelle einfärben
SetBkMode(StC.Handle, OPAQUE);
StC.FillRect(Rect);
end;
//Abschliessend den Text zeichnen
DrawText(StC.Handle, PChar(Celltext), Length(celltext), Rect, Textformat);
end;
end;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...
Surft Ihr mit dem Taschenrechner?"
|