procedure TProgressForm.ProgressGrdDrawColumnCell(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 = FCompleteFieldName then
begin
with DataSet do
Percent := Round(FieldByName(FCompleteFieldName).AsInteger
/ FieldByName(FTotalFieldName).AsInteger * 100);
with Rect do
ProgressRect := Types.Rect(Left, Top,
Left + Round((Right- Left)*(Percent/100))-1, Bottom-1);