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;