Einzelnen Beitrag anzeigen

Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#3

Re: StringGrid - Einzelne Zellen färben - unter Bedingung

  Alt 20. Jan 2010, 20:21
Ich wollte auch sagen: onDrawCell prüfen ob die Aktuell gezeichnete Celle die Person enthält die du Farbig machen willst.
Als Beispiel:
Delphi-Quellcode:
procedure TForm1.SGUebersichtDrawCell(Sender: TObject; aCol, aRow: Integer;
  aRect: TRect; aState: TGridDrawState);
var d:boolean=false;
    x:integer;
begin
// erstmal grundfarbe setzen:
  (sender as TStringgrid).canvas.Brush.color:=(sender as TStringgrid).color;
  (sender as TStringgrid).canvas.Font.color:=clWindowText;
  if (acol<(sender as TStringgrid).fixedCols) or (arow<(sender as TStringgrid).fixedRows) then
  begin
    (sender as TStringgrid).canvas.Brush.color:=(sender as TStringgrid).FixedColor; //Farbe der Header
    if (arow=ActRow) then (sender as TStringgrid).canvas.Brush.color:=clMoneyGreen;
  end
  else
  begin
    // was färben bei der Aktuellen Zeile:
    if (arow=ActRow) then (sender as TStringgrid).Canvas.Brush.Color:=clMoneyGreen;
    if gdSelected in astate then
    begin
      (sender as TStringgrid).canvas.Brush.color:=clHighlight; //farbe von markierung
      (sender as TStringgrid).canvas.Font.color:=clwindow;
    end;
  end;
  (sender as TStringgrid).canvas.FillRect(arect);
  (sender as TStringgrid).Canvas.TextOut(arect.left+3,arect.top+3,(sender as TStringgrid).Cells[acol,arow]);
end;
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat