在vb里窗体和打印机的度量单位可通过设置它们的属性ScaleMode的来改变。默认为缇。在Delphi里其窗体的度量单位和打印机的度量单位是否有属性,可以改变,默认的度量单位是什么?

解决方案 »

  1.   

    在Delphi里其窗体的度量单位是像素
    打印机的度量单位可以是“磅”、“像素”、“毫米”、“厘米”、“英寸”等几种度量单位
    在VB中默认的度量单位是缇,主要是用在打印机上的,大概是1缇=1/20磅
    Basic.NET将度量单位从Twips转换为pixels
      

  2.   

    Anylib已经推出新版本!主要增加以下功能:
    1.数据库支持
    2.数据分组
    3.分页符
    4.多栏打印
    5.背景图欢迎到我们的网站下载试用版。
    http://www.anylib.com
      

  3.   

    据我所知,打印机的度量单位只认象素。屏幕的度量单位也是象素。但是一般的屏幕象素都要大于打印机的象素。如果你想不使用其他软件,使用DELPHI编程打印图片,你最好进行相应的换算。
      

  4.   

    Delphi改变打印机对象Printers的度量单位的属性是什么?
      

  5.   

    在USES中添加打印程序单元(Printers),尽管Delphi在生成窗体时会自动在USES部分加入许多程序单元,但打印程序单元却不在此列,只能手工给它加上。
    用GetDeviceCaps (Printer.Handle,LOGPIXELSX)获取当前打印机的水平分辨率。
    如果想让打印程序在任何打印机上都能正常地打印,你就必须改变你的度量单位。
    dpm:=trunc(dpi/25.4);
    //算出每毫米的打印机点数。
    MyMetafile:= TMetafile.Create;
    //创建图元文件
    TMetafileCanvas.Create(MyMetafile,printer.Handle)
    //以打印机句柄创建图元文件画布
    textout(trunc(sx* dpm),trunc(sy*dpm)',我的打印');//进行打印输出
    image1.Canvas.StretchDraw(image1.canvas.cliprect,MyMetafile);
    //显示图元文件
      

  6.   

    顶,我也想问
    在vb里窗体和打印机的度量单位可通过设置它们的属性ScaleMode的来改变。默认为缇
    567 个缇 等于 1厘米
    在VB中如:
    printer.ScaleMode = VbMillimeters
    就把坐标的单位设置为mmdelphi printer打印时默认的单位是什么,1厘米等于多少个这样默认的单位
    delphi 中有没有这样的设置
      

  7.   

    像素与毫米的转换
    转换还需要知道另一个参数:DPI(每英寸多少点)
    象素数 / DPI = 英寸数
    英寸数 * 25.4 = 毫米数 对于显示设备,不管是打印机还是屏幕,都有一种通用的方法
    先用GetDeviceCaps(设备句柄,LOGPIXELSX)
    或者
    GetDeviceCaps(设备句柄,LOGPIXELSY)获得设备每英寸的像素数
    分别记为:px 和 py
    一英寸等于25.4mm
    那么毫米换算成像素的公式为 
    水平方向的换算: x * px /25.4
    垂直方向的换算: y * py /25.4
    像素换算为毫米 x * 25.4 / px
    在程序中这么写
    MyControl.Height := 10{mm} * PixelsPerInch * 10 div 254;
    分子和分母同乘以10,将浮点数运算转化为整数运算,效率更高常用的1024x768或800x600等标准的分辨率计算出来的dpi是一个常数:96,因此计算出来的毫米与像素的关系也约等于一个常数:
    基本上 1毫米 约等于 3.78像素
      

  8.   

    <windows 程序设计5>里面讲的很详细,