Ver Mensaje Individual
  #10  
Antiguo 19-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Bueno, GetDeviceCaps variará sus valores según lo que tu dices... ¿O como crees que VB llega a ese valor?
Es mas.. lo he hecho y funciona, en VB Printer.TwipsPerPixelX da 2,4 y Screen.TwipsPerPixelX da 15... Trabajando con las proporciones siempre llego al mismo valor, desde Delphi y desde VB, esto es lo que he escrito:

Código:
Const
  TWIPSPERINCH = 1440;

implementation

function TwipsToPixelsX(DC: HDC; lTwips: Extended): Extended;
begin
  Result := (lTwips * GetDeviceCaps(DC, LOGPIXELSX)) / TWIPSPERINCH;
end;

function PixelsToTwipsX(DC: HDC; lPixels: Extended): Extended;
begin
  Result := (lPixels * TWIPSPERINCH) / GetDeviceCaps(DC, LOGPIXELSX);
end;
para probarlo:

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption := Format('Impresora: %f Pantalla: %f',
                    [PixelsToTwipsX(Printer.Handle, 1),
                     PixelsToTwipsX(Canvas.Handle, 1)]);
end;
Teneme al tanto de como te ha ido...
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 19-11-2003 a las 22:45:58.
Responder Con Cita