Советы по Delphi

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


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

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

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


}

unit DBPicGrd;

interface

uses
DBGrids, DB, DBTables, Grids, WinTypes, Classes, Graphics;
type
TDBPicGrid = class(TDBGrid) protected procedure DrawDataCell(const Rect: TRect; Field: TField; State: TGridDrawState); override; public constructor Create(AOwner : TComponent); override; published property 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 do begin FillRect(Rect); if Field is TGraphicField then try bmp := TBitmap.Create; bmp.Assign(Field); Draw(Rect.Left, Rect.Top, bmp); finally bmp.Free; end else TextOut(Rect.Left, Rect.Top, Field.Text); end; end;

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

end.
[000068]



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