F FLYINGFDK11 Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-05 #1 由于要让用户设置某些控件的长度,而需求要求提供按MM来接受用户输入,但控件只接受像素(PIX),我知道有一个函数能实现,但一下子想不起来,请哪个大哥大姐帮忙一下.
S Slong Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-05 #2 //把象数转化成毫米,用在打印部分 function PixelToMM(APixel:Real) : Real; var PixelRate : Real; begin case GetDeviceCaps(Printer.Handle, LOGPIXELSX) of //打印机的精度 120 : PixelRate:=0.1701; 180 : PixelRate:=0.1458; 300 : PixelRate:=0.0898; 360 : PixelRate:=0.0729; 600 : PixelRate:=0.0449; 720 : PixelRate:=0.0365; 1200: PixelRate:=0.0224; end; Result := APixel * PixelRate; end;
//把象数转化成毫米,用在打印部分 function PixelToMM(APixel:Real) : Real; var PixelRate : Real; begin case GetDeviceCaps(Printer.Handle, LOGPIXELSX) of //打印机的精度 120 : PixelRate:=0.1701; 180 : PixelRate:=0.1458; 300 : PixelRate:=0.0898; 360 : PixelRate:=0.0729; 600 : PixelRate:=0.0449; 720 : PixelRate:=0.0365; 1200: PixelRate:=0.0224; end; Result := APixel * PixelRate; end;
F FLYINGFDK11 Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-05 #3 可能我的问题问的有点含糊,我的意思是这样的,我现在在看报表程序, 由于其中的字段宽度是由用户动态设定的,但在这些值设定之前我要提供 一个界面让用户看到字段设定的栏宽在打印纸张上的比率,我是通一个 状态欄(TStatusBar)来显示用户设定的宽度在纸张上的比率,但由 于TstatusBar的WIDTH属性得到的是像素点如(600),但我要把他换成MM.
可能我的问题问的有点含糊,我的意思是这样的,我现在在看报表程序, 由于其中的字段宽度是由用户动态设定的,但在这些值设定之前我要提供 一个界面让用户看到字段设定的栏宽在打印纸张上的比率,我是通一个 状态欄(TStatusBar)来显示用户设定的宽度在纸张上的比率,但由 于TstatusBar的WIDTH属性得到的是像素点如(600),但我要把他换成MM.
S Slong Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-05 #4 就是这样: YourMM := PixelToMM(600); 这样YourMM就是你要得到的MM了。
F FLYINGFDK11 Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-05 #5 请问这个函数是在那个unit里,我在帮助信息里找不到此函数
Z zhukewen Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-05 #6 function PixelToMM(APixel:Real) : Real; var PixelRate : Real; begin PixelRate := GetDeviceCaps(Printer.Handle, LOGPIXELSX); //打印机上每英寸点数 Result := APixel / PixelRate * 25.38888; //1英寸=25.3888毫米 end;
function PixelToMM(APixel:Real) : Real; var PixelRate : Real; begin PixelRate := GetDeviceCaps(Printer.Handle, LOGPIXELSX); //打印机上每英寸点数 Result := APixel / PixelRate * 25.38888; //1英寸=25.3888毫米 end;