是打印高手的请露一手,打印模板问题(100分)

Z

zbxx631

Unregistered / Unconfirmed
GUEST, unregistred user!
我想保存线长,线宽等属性,保存的数据不知用素象好还是毫米好,
现在的问题是:
1。象素转换为毫米,再由毫米转换为象素后与原象素值不同了,可用如下函数试验
procedure TForm1.Button1Click(Sender: TObject);
Var
TempMM:Double;
TempPixsl:Integer;
begin
TempPixsl:=StrToInt(Edit1.Text);
TempPixsl:=MmToPixls(PixlsToMm(TempPixsl,Screen.PixelsPerInch),Screen.PixelsPerInch);
Edit1.Text:=IntToStr(TempPixsl);
end;

//毫米单位转换为象素单位
function MmToPixls(Length: Extended;PixlsPerInch:Integer): Integer;
begin
Result := Round(Length*PixlsPerInch/25.4);
end;

//象素单位转换为毫米单位
function PixlsToMm(Length:Integer;PixlsPerInch:Integer): Extended ;
begin
Result := Round(Length*25.4/PixlsPerInch);
end;
因此保存为毫米就不行。
2:如果保存为象素,不同显示器的分辨率不同,同一毫米值对应象素不等,
因此保存为象素也不行。
3:这个问题肯定可以解决,DELPHI 的REPQUICK可用于不同显示器
但不知如何解决,请高手指点。
 
上面有个地方写错了
//象素单位转换为毫米单位
function PixlsToMm(Length:Integer;PixlsPerInch:Integer): Extended ;
begin
Result := Length*25.4/PixlsPerInch;
end;
 
没人伸一腿,露一手的吗??
 
结束此问题
 
顶部