Советы по Delphi

       

Показ изображений в DBGrid


После небольшого раздумья я решил прислать своего потомка DBGrid, который позволяет выводить изображения, благо добавочного кодирования не так много.

Код компонента:

{
// DBPICGRD.PAS (C)
// ВСЕ ПРАВА ЗАЩИЩЕНЫ.
//
// ОПИСАНИЕ:
// Компонент DBGrid, способный отображать графику в ячейках.
}

unit DBPicGrd;

interface

uses
DBGrids, DB, DBTables, Grids, WinTypes, Classes, Graphics;
type
TDBPicGrid = class(TDBGrid)protectedprocedure DrawDataCell(const Rect: TRect;Field: TField; State: TGridDrawState); override;publicconstructor Create(AOwner : TComponent); override;publishedproperty DefaultDrawing default False;end;
procedure Register;

implementation

constructor TDBPicGrid.Create(AOwner : TComponent);
begin
inherited
Create(AOwner);DefaultDrawing := False;end;

procedure TDBPicGrid.DrawDataCell(const Rect: TRect; Field: TField;
State: TGridDrawState);
var
bmp : TBitmap;begin
with
Canvas dobeginFillRect(Rect);if Field is TGraphicField thentrybmp := TBitmap.Create;bmp.Assign(Field);Draw(Rect.Left, Rect.Top, bmp);finallybmp.Free;endelseTextOut(Rect.Left, Rect.Top, Field.Text);end;end;

procedure Register;
begin
RegisterComponents('Custom', [TDBPicGrid]);end;

end.
[000068]



Содержание раздела