📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, GridsEh, DBGridEh, DB, Types, ADODB, StdCtrls, Mask, RzEdit,
RzLabel;
type
TForm1 = class(TForm)
DBGridEh1: TDBGridEh;
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
BtnQty: TButton;
procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure FormCreate(Sender: TObject);
procedure BtnQtyClick(Sender: TObject);
private
{ Private declarations }
FCompleteFieldName,FTotalFieldName:string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
ProgressRect, ATextRect: TRect;
DBGridEh: TDBGridEh;
DataSet: TDataSet;
Percent: Integer;
PercentText: string;
begin
if not (Sender is TDBGridEh) then Exit;
DBGridEh := Sender as TDBGridEh;
DataSet := DBGridEh.DataSource.DataSet;
with DBGridEh.Canvas do
begin
if Column.FieldName = 'percent' then
begin
with DataSet do
Percent := Round(FieldByName(FCompleteFieldName).AsInteger
/ FieldByName(FTotalFieldName).AsInteger * 100);
with Rect do
ProgressRect := Types.Rect(Left+1, Top+1,
Left + Round((Right- Left)*(Percent/100))-1, Bottom-1);
Brush.Color := clWindow;
Font.Color := clWindow;
DBGridEh.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Brush.Color := $00FFCC00;
Font.Color := $00FFCC00;
DBGridEh.DefaultDrawColumnCell(ProgressRect, DataCol, Column, State);
PercentText := IntToStr(Percent) + '%';
Brush.Style := bsClear;
Font.Color := clBlack;
with Rect do
TextOut(Left + (Right-Left) div 2 -TextWidth(PercentText) div 2,
Top+1, PercentText);
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FCompleteFieldName := 'Finish_Count';
FTotalFieldName := 'Total_Count';
end;
procedure TForm1.BtnQtyClick(Sender: TObject);
begin
if not ADOConnection1.Connected then
ADOConnection1.Connected := True;
if not ADOQuery1.Active then
ADOQuery1.Active:=True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -