- Код: Выделить всё
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var bp:TBitmap;
begin
bp:=TBitmap.Create;
If Column.FieldName='N' then
begin
with DBGrid1.Canvas do
begin
Brush.Color:= clWhite;
FillRect(Rect);
ImageList1.GetBitmap(0,bp);
Draw(round((Rect.Left+Rect.Right-bp.Width)/2),round((Rect.Top+Rect.Bottom-bp.Height)/2),bp);
end;
end;
end;
Вот так пытаюсь переделать для простого грида:
- Код: Выделить всё
procedure TForm2.SGridDrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);
var bp:TBitmap;
begin
bp:=TBitmap.Create;
If SGrid.Columns.Items[0] then
begin
SGrid.Canvas.Brush.Color:=clWhite;
SGrid.Canvas.FillRect(Rect);
IL.GetBitmap(0, bp);
{with SGrid.Canvas do
begin
Brush.Color:= clWhite;
//FillRect(Rect);
IL.GetBitmap(0,bp);
Draw(round((Rect.Left+Rect.Right-bp.Width)/2),round((Rect.Top+Rect.Bottom-bp.Height)/2),bp);
end;}
end;
end;
Компилятор ругается:
unit2.pas(62,27) Error: Wrong number of parameters specified for call to "Rect"
на строку:
- Код: Выделить всё
SGrid.Canvas.FillRect(Rect);
Подскажите пожалуйста что не так и как реализовать это? Возможно в простом гриде это делается совсем иначе?