//from
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_10144309.htmlfunction GetLogPixelsX : integer;
var i1 : integer;
begin
 i1:=CreateCompatibleDC(0);
 result:=GetDeviceCaps(i1,LogPixelsX);
 DeleteDC(i1);
end;function millimeter_to_pixel(millimeter: integer) : integer;
begin
 result:=round(GetLogPixelsX*millimeter/254);
end;

解决方案 »

  1.   

    FormDC := GetWindowDC(ZZZPForm.Handle);
      SIX := GetDeviceCaps(FormDC, LOGPIXELSX);
      SIY := GetDeviceCaps(FormDC, LOGPIXELSY);
      PPIX := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
      PPIY := GetDeviceCaps(Printer.Handle, LOGPIXELSY);
    function Map(X: Integer; Y: Integer): Integer;
    begin
      Result := 0;
      if Y = 0 then
        Result := Trunc(X*PPIX/SIX);
      if Y = 1 then
        Result := Trunc(X*PPIY/SIY);
    end;
    delphi6.0通过
      

  2.   

    电脑的Tqrlabel,Tqrdbtext的left,top的单位是twips1mm=56.7twips
    1Point=20 twips
    1inch=72 Points
      

  3.   

    use printers
    用pinter对象即可达到.
    可查阅<delphi4 开发宝典>等外籍人士的著作都有