EhLibSupport писал(а):
Забыли Processed прописать.
Спасибо работает.
Но я уже другой способ нашел, методом тыка.
В вашем способе фон под картинкой белый получается, т.е. выглядит как же как в Delphi
А у меня получилось, что и фон под картинкой такой же как у выделенной строки.
Вложение:
lz_canvas.png [ 14.47 KiB | Просмотров: 650 ]
Код:
procedure TFormCallCntr.DBGridEh4DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
var btmp : TIcon; fixRect : TRect; bmpWidth : integer; imgIndex : integer; clfon:TColor;
begin
fixRect := Rect;
with (Sender as TDBGridEh) do
if ((Column.Field = MemTableEh4NAME) and MemTableEh4gb.Value) then
begin
clfon:=Canvas.Pixels[fixRect.Left,fixRect.Top+1];
btmp := TIcon.Create;
try
ImageList1.GetIcon(0, btmp);
bmpWidth := (Rect.Bottom - Rect.Top);
fixRect.Right := Rect.Left + bmpWidth;
fixRect.Top:=fixRect.Top+1; fixRect.Bottom:=fixRect.Bottom-1;
Canvas.StretchDraw(fixRect, btmp);
finally
btmp.Free;
end;
fixRect := Rect;
fixRect.Left := fixRect.Left + bmpWidth;
Canvas.CopyRect(fixRect, Canvas, fixRect);
Canvas.Brush.Color := clfon;
Canvas.textOut(fixRect.Left+2,fixRect.Top+2,' '+Column.Field.text);
end;
end;