Hallo,
mit
function Rect ( Left, Top, Right, Bottom : Integer ) : TRect;
Delphi-Quellcode:
//Variable anlegen
var aRect : TRect;
//...
aRect := Rect(XPos,
- YPos,
XPos + (Grid.ColWidths[J] * 3),
YPos - (Grid.RowHeigths[ I + (Seite - 1) * Zeilen - 1] * 3) );
Printer.Canvas.FillRect(Rect);
oder so ähnlich ... (mein Lieblingssatz
)
Aber die Farbermittlungsprozedur wird nicht funktionieren:
Printer.Canvas.Brush.Color := Grid.Canvas.Pixels[XPos,YPos];
die Koordinaten -XPos,YPos- beziehen sich auf den Druckbereich, ein Bezug zum Grid ist da erforderlich, wie im oberen Vorschlag. Nimm doch die Bedingungen die Du in OnDrawcell verwendest.
//Edit: roter Kasten, aber ...