起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: 新来小职员

【搞定】一中特殊的文档表现形式,不知道如何用X3实现[问题]**

[复制链接]
发表于 2007-9-21 15:47:48 | 显示全部楼层
我想到的就是一个格子用一个字段。

要不就是找找是否有类似控件,用第三方控件来做,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-21 16:24:29 | 显示全部楼层
他的输入是象windows自带的计算器那样,当你先输入一个1,然后再输入一个0,那1就向前移动到十位处0就在个位处.依此类推
回复 支持 反对

使用道具 举报

发表于 2007-9-21 16:42:47 | 显示全部楼层
能让这些数字之间没有线,意思就用一个字段来表示,如果要一个数字一个数字用线隔开,平台做不到,需要借助第三方控件了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-21 17:22:19 | 显示全部楼层
如此这般,只好结贴了...-_-b
回复 支持 反对

使用道具 举报

发表于 2007-9-21 18:13:43 | 显示全部楼层
有个不算好方法的方法,你可以自己画这个
用GridCustomDrawCell 事件

snap1.png

24.27 KB, 下载次数: 82

回复 支持 反对

使用道具 举报

发表于 2007-9-26 09:05:39 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

发表于 2007-9-26 09:13:12 | 显示全部楼层
procedure TSJWG1.DataGridCustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TTreeListNode; AColumn: TTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: string; var AColor: Integer; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
var
    S: String;
    i, x, y, iTextWidth: Integer;
begin

    if  AColumn.Name<>'DataGridJE'   then Exit;

    with ACanvas do begin
        iTextWidth := TextWidth('8') + 4;

        y := ARect.Top + (ARect.Bottom - ARect.Top - TextHeight('8')) div 2;

        S :=  Business.System.SysUtils.StringReplace(sysutils.FormatFloat('0.00',DataSetBrokerBZSJJ1.DataSet.FieldByName('je').AsFloat), '.', '', []);
        if DataSetBrokerBZSJJ1.DataSet.FieldByName('je').AsFloat < 0 then Font.Color := Business.System.Graphics.clRed;
        if ASelected then    Font.Color := Business.System.Graphics.clBlack;
        FillRect(ARect);

        i := (ARect.Right - ARect.Left) div iTextWidth;
        repeat
            x := ARect.Right - iTextWidth * i;
            if i <= Length(S) then
                TextOut(x+3, y, s.Chars[s.Length-i]); //S[Length(S)-i+1]

            if i = 2 then
                Pen.Color := Business.System.Graphics.clRed
            else if (i = 0) or ( (i>2) and (((i-2) mod 3) = 0) ) then
                Pen.Color := Business.System.Graphics.clGreen
            else
                Pen.Color := Business.System.Graphics.clSilver;
            MoveTo(x, ARect.Top);
            LineTo(x, ARect.Bottom);
            Dec(i);

        until (i<0);
        ADone := true;
    end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-26 09:37:14 | 显示全部楼层
我要研究下,过段时间再反馈.
回复 支持 反对

使用道具 举报

发表于 2007-9-26 10:12:30 | 显示全部楼层
好,记得及时反馈,帖子一般跟踪不要超过一周,太长你我都不方便
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-27 11:41:19 | 显示全部楼层
如果是样你先结了这贴先,我遇到问题的话再另外发贴.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-28 11:54 , Processed in 0.042993 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表