Показать сообщение отдельно
  #1  
Старый 06.05.2009, 10:46
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,564
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию Пример рисования изображения в ячейках DBGrid

Возможно данный код кому-то пригодится

Код:
unit AFirstPage;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, ImgList, DBCtrls, ExtCtrls, StdCtrls;

type
  TAFirst = class(TForm)
    DBGrid: TDBGrid;
    ImageList1: TImageList;
    Panel1: TPanel;
    DBNavigator1: TDBNavigator;
    procedure DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
  private

  public

  end;

var
  AFirst: TAFirst;

implementation

uses Unit2;

{$R *.dfm}

procedure TAFirst.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
 fixRect: TRect;
 bitmap: TBitmap;
 bmpWidth, imgIndex: integer;
begin
 fixRect := Rect;

 if Column.Field = Data.TableORDRE
 then
  begin
   if Data.Table.Fields[22].AsBoolean
   then imgIndex := 0
   else imgIndex := 1;

   bitmap := TBitmap.Create;
    try
      ImageList1.GetBitmap(imgIndex,bitmap);
      bmpWidth := (Rect.Bottom - Rect.Top);
      fixRect.Right := Rect.Left + bmpWidth;
      DBGrid.Canvas.StretchDraw(fixRect,bitmap);
    finally
      bitmap.Free;
    end;
  end;

 fixRect := Rect;
 fixRect.Left := fixRect.Left + bmpWidth;
end;

end.