捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
为DBGrid绘制中文帐簿金额栏改进版
关键字:DBGrid 中文帐簿 金额栏 样式 改进版
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:中级 完成时间:2005/8/19
发布者:conch 发布时间:2005/8/19
编辑器:DELPHI6 语  种:简体中文
分 类:组件 下载浏览:2452/14611
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
在http://www.2ccc.com/article.asp?articleid=2447基础上改进,为DBGrid绘制中文帐簿金额栏,无论列宽多少,都是完整的帐簿金额栏样式,负数以红色字显示。
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
为DBGrid绘制中文帐簿金额栏改进版
conch 2005/8/19 下+2452/浏+14612 评+28
为DBGrid绘制中文帐簿金额栏修改版
dragon_cbx 2005/8/13 下+2384/浏+13689 评+4
在ListView中添加ProgressBar
netrobo 2005/8/9 下+2018/浏+15537 评+5
为DBGrid绘制中文帐簿金额栏
netrobo 2005/8/8 下+1147/浏+10712 评+2
相关评论
共有评论28条 当前显示最后6条评论
dgy_snakeking 2005/9/7 16:06:46
conch老大是湖南四川人???
dgy_snakeking 2005/9/7 16:13:27
顺便问下conch,Delphi里怎判断TwwDBLookupComb是否已经是下拉状态?,以前用VB时,自己写一个 WindowProc,截获 CBN_DROPDOWN 和 CBN_CLOSEUP 消息设置一个变量,收到 CBN_DROPDOWN 时 + 1,收到 CBN_CLOSEUP 时 - 1,Delphi里有没有直接点的方法?
conch 2005/9/9 17:12:28
广东人。

我没用TwwDBLookupComb。如果它继承自TCustomCombo,能通过cbbXXX.DroppedDown读取/设置下拉属性;否则你可以尝试向控件发送CB_GETDROPPEDSTATE,看是否返回正确信息。都不行的话,可以用FindWindow查找下拉列表的类名(下拉列表是一独立的窗体),以判断是否在下拉状态。
dajun 2005/9/14 8:49:38
//CXGrid在OnCustomDrawCell里处理显示
procedure TMainForm.cxGrid1DBTableView1WageCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
    S,ATextToDraw: String;
    i, x, y, iTextWidth: Integer;
    Rect: TRect;
begin
    ATextToDraw := AViewInfo.GridRecord.DisplayTexts[AViewInfo.Item.Index];
    Rect:=AViewInfo.Bounds;
    with ACanvas.Canvas do
    begin
        iTextWidth := TextWidth('8') + 4;
        y := Rect.Top + (Rect.Bottom - Rect.Top - TextHeight('8')) div 2;
        S := StringReplace(FormatFloat('0.00', AViewInfo.Value), '.', ', []);
        if AViewInfo.Value < 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);
        ACanvas.FrameRect(Rect);
        ADone:=True;
    end;
end;
mengstart 2006/3/5 2:46:05
呵呵,楼上的代码前面最好加一行
if AViewInfo.Item.Name<>'je' then Exit;  // 'je'为要需用金额栏显示的列名
限制一下,否则每行都变成金额栏了
dcy 2006/4/27 23:52:41
楼上多虑
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表