What are you doing?
What do you to do?

解决方案 »

  1.   

    CSDN上没有这方面的专家吗?帮忙啊
    : Borlandor(五角▲大民) 
    我只是想把规格为12.4英寸打印成如下形式啊,  1
                                         12 ----
                                             2(英寸小数位是八进制的)forgot(让一切随风) 
    输入的是小数,打印的是分数: yuanjunjing(※挪威森林※) 不能打成1/2,比如12.5你怎么办?另外客户要求不能这么打
      

  2.   

    1、先算出小数部分的分子和分母
    最笨的办法是:把它用FloatToStr转化成字符串,然后,数小数点后有几位数(假设为N),然后将小数点后数作为分子,10的N次方为分母,然后化去公因数。这样就得到简化后的分数了。(唉,数学不好真难办)
    如:0.25 => 25/100 => 1/42、用Canvas画出来
    这个就简单了,先用TCanvas.TextOut画出分子,然后用TCavas.MoveTo和LineTo画线,最后再用TCanvas.TextOut画出分母。不过如果为了好看些,你需要算出分子和分母的宽度(可以根据TextWidth算出,高度TextHeight),然后找准地方画,如果不想算,也可以用API函数DrawText来画,它有参数来指定对齐方式。最好把1和2封装在一个函数中,然后传入相应的参数:Canvas、数据、位置、限定的空间(TRect),也可以不传限定空间,这时则可输出绘制占用的空间。还可以再封装一个函数,测算绘制将占据的宽高。当然了,也可索性做一个类,把这两个函数及相关的参数封装起来。祝你好运。__________________________________________________________________________
    http://i58.boy.net.cn/ (抱歉,未建好)
    欢迎加入“Delphi的天空”互助邮件讨论组,我们的宗旨是:互相帮助,共同进步 
    mailto:[email protected]
    http://cn.groups.yahoo.com/group/delphi_sky/
    或: http://agui.delphibbs.com/
    紫光拼音输入法交流邮件组
    mailto:[email protected] 
    http://cn.groups.yahoo.com/group/unispim/
      

  3.   

    谢谢agui(阿贵.Program(Life)) 
    关键是不知确定位置啊,要不我这样也可搞定的
      Canvas.Brush.Color:=Color;
      Canvas.MoveTo(1, 14);
      Canvas.LineTo(15, 14);
      Canvas.TextOut(4,1,'1');
      Canvas.TextOut(4,15,'2');