DrawForm.pas
资源名称:delphi.rar [点击查看]
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:
Delphi控件源码
开发平台:
Delphi
- unit DrawForm;
- interface
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- DBTables, DB, Grids, DBGrids, ExtCtrls, StdCtrls, DBCtrls;
- type
- TForm1 = class(TForm)
- DataSource1: TDataSource;
- DBGrid1: TDBGrid;
- Table1: TTable;
- Table1SpeciesNo: TFloatField;
- Table1Category: TStringField;
- Table1Common_Name: TStringField;
- Table1Lengthcm: TFloatField;
- Table1Notes: TMemoField;
- Table1Graphic: TGraphicField;
- procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
- DataCol: Integer; Column: TColumn; State: TGridDrawState);
- procedure FormCreate(Sender: TObject);
- procedure Table1NotesGetText(Sender: TField; var Text: String;
- DisplayText: Boolean);
- procedure Table1NotesSetText(Sender: TField; const Text: String);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.DFM}
- procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
- DataCol: Integer; Column: TColumn; State: TGridDrawState);
- var
- Bmp: TBitmap;
- OutRect: TRect;
- BmpWidth: Integer;
- begin
- // default output rectangle
- OutRect := Rect;
- if Column.Field = Table1Common_Name then
- begin
- // draw the image
- Bmp := TBitmap.Create;
- try
- Bmp.Assign (Table1Graphic);
- BmpWidth := (Rect.Bottom - Rect.Top) * 2;
- OutRect.Right := Rect.Left + BmpWidth;
- DBGrid1.Canvas.StretchDraw (OutRect, Bmp);
- finally
- Bmp.Free;
- end;
- // reset output rectangle, leaving space for the graphic
- OutRect := Rect;
- OutRect.Left := OutRect.Left + BmpWidth;
- end;
- // red font color if length > 100
- if (Column.Field = Table1Lengthcm) and
- (Table1Lengthcm.AsInteger > 100) then
- DBGrid1.Canvas.Font.Color := clRed;
- // default drawing
- DBGrid1.DefaultDrawDataCell (OutRect, Column.Field, State);
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Table1.Active := True;
- end;
- procedure TForm1.Table1NotesGetText(Sender: TField; var Text: String;
- DisplayText: Boolean);
- begin
- Text := Trim (Sender.AsString);
- end;
- procedure TForm1.Table1NotesSetText(Sender: TField; const Text: String);
- begin
- Sender.AsString := Text;
- end;
- end.