画DBGRID,DBGRIDEH中文帐簿金额栏
procedure TformBuy.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
S: String;
i, x, y, iTextWidth: Integer;
begin
// if Field.DataType <> ftBCD then Exit;
if Field.FieldName <> 'jxdmoney' then Exit;
with TDBGrideh(Sender).Canvas do
begin
iTextWidth := TextWidth('8') + 4;
y := Rect.Top + (Rect.Bottom - Rect.Top - TextHeight('8')) div 2;
S := StringReplace(FormatFloat('0.00', Field.AsCurrency), '.', '', []);
if Field.AsCurrency < 0 then Font.Color := clRed;
FillRect(Rect);
i := (Rect.Right - Rect.Left) div iTextWidth;
repeat
x := Rect.Right - iTextWidth * i;
if i <= Length(S) then
TextOut(x+3, y, S[Length(S)-i+1]);
if i = 2 then
Pen.Color := clRed
else if (i = 0) or ( (i>2) and (((i-2) mod 3) = 0) ) then
Pen.Color := clGreen
else
Pen.Color := clSilver;
MoveTo(x, Rect.Top);
LineTo(x, Rect.Bottom);
Dec(i);
until (i<0)
end;
end;
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/archive/2009/12/20/2940745.html