Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-11-2003
Avatar de torito
torito torito is offline
Miembro
 
Registrado: jun 2003
Ubicación: Querétaro, Mex.
Posts: 349
Poder: 21
torito Va por buen camino
Talking Reto de Impresora (VB vs Delphi)

Saludos amigos Foreros.... yo se que delphi es la herramienta superior y no hay una razón por la cual compararlo con Visual Basic hasta que me aparecio este problema...

Tengo un codigo que consegui de la net, el caul sirve para mi aplicación pero esta hecho en Visual Basic, y no eh podido exportarlo a Delphi debido a que no encuentro con delphi sacar las caracteristicas de la impresora.... asi que el reto es este... como lo puedo sacar con delphi???
las caracteristicas es cuantos twins maneja la impresora, el tamaño de papel configurado, los twips por pixel???
mando adjunto el codigo por si alguien lo quiere ver, obvio esta hecho en Visual Basic.... saludos y gracias

'Convert page units to inches
Printer.ScaleMode = vbInches

'Get this printer's Twips per Pixel value
TwipsPerPixX = Printer.TwipsPerPixelX
TwipsPerPixY = Printer.TwipsPerPixelY

'Get width and height of page in inches
PrinterWidth = Printer.ScaleWidth
PrinterHeight = Printer.ScaleHeight
Responder Con Cita
  #2  
Antiguo 18-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
Poder: 26
delphi.com.ar Va por buen camino
En VB se tiende a medir la posición de todos los controles, según la escala que decida el programador. En Delphi directamente se mide todo en píxeles (excepto algunas ocaciones), y si quieres saber cual es la proporción entre píxeles y milimetros de un dispositivo, puedes hacerlo mediante la función GetDeviceCaps.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 18-11-2003
Avatar de torito
torito torito is offline
Miembro
 
Registrado: jun 2003
Ubicación: Querétaro, Mex.
Posts: 349
Poder: 21
torito Va por buen camino
Asi como tu dice delphi.com.ar, esta es una de esas ocaciones debido al manejo de procesos de la herramienta active X con la que trabajo
Responder Con Cita
  #4  
Antiguo 18-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
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Según la ayuda de VB5:
Existen aproximadamente 1440 twips en una pulgada o 567 twips en un centímetro lógico.
Por lo que sabiendo la cantidad de píxeles por milímetro, no creo que sea muy difícil llegar a la cantidad de twips.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 18-11-2003
Avatar de torito
torito torito is offline
Miembro
 
Registrado: jun 2003
Ubicación: Querétaro, Mex.
Posts: 349
Poder: 21
torito Va por buen camino
pefecto, con eso arreglo lo de los twips, ahora solo me falta el ancho y largo de la hoja configurada
Responder Con Cita
  #6  
Antiguo 18-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
Poder: 26
delphi.com.ar Va por buen camino
Necesitas utilzar la unit Printers, y acceder a Printer.PageHeight y Printer.PageWidth, recueda cuando para tomar la proporción de la impresora: GetDeviceCaps(Printer.Handle, HORZSIZE)....

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 19-11-2003
Avatar de torito
torito torito is offline
Miembro
 
Registrado: jun 2003
Ubicación: Querétaro, Mex.
Posts: 349
Poder: 21
torito Va por buen camino
Oye Delphi.com.ar.... una ultima duda, quiero entender que al poner el valor HORZSICE me dará el valor de las X y cuando le de VERTSICE me dará el valor de las Y ??????

gracias
Responder Con Cita
  #8  
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
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Extraído de Win32 Programmer´s Reference
HORZSIZE Width, in millimeters, of the physical screen.
VERTSIZE Height, in millimeters, of the physical screen.
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #9  
Antiguo 19-11-2003
Avatar de torito
torito torito is offline
Miembro
 
Registrado: jun 2003
Ubicación: Querétaro, Mex.
Posts: 349
Poder: 21
torito Va por buen camino
Sabes que delphi.com.ar... no es por ahi la tirada, el valor de los twips no sale asi.... estuve revisando mediante VB y la configuración de la impresora y el valor del twip por lo que vi va en representación del grafico o mejor dicho de la calidad de impresión... por ejemplo si tu tienes tu impresora a 600 * 600 dots per inch el valor de twips por pixel es de 2.4 y si lo tienes de 1200 * 1200 el valor es de 1.2, o lo tienes de 300*300 el valor es de 4.8, me entiendes??? entonces el truco es sacar los valores que tiene la impresora en el manejo de calidad de impresión... tienes idea de como hacerlo???

gracias
Responder Con Cita
  #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
Poder: 26
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 23:45:58.
Responder Con Cita
  #11  
Antiguo 20-11-2003
Avatar de torito
torito torito is offline
Miembro
 
Registrado: jun 2003
Ubicación: Querétaro, Mex.
Posts: 349
Poder: 21
torito Va por buen camino
Pues tienes Toda la razón, ya lo probe con diferentes configuraciones y esta trabajando super bien, muchas gracias.... pero de donde sacaste los valores de tu funcion
GetDeviceCaps(DC, LOGPIXELSX)

muchas gracias
Responder Con Cita
  #12  
Antiguo 20-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
Poder: 26
delphi.com.ar Va por buen camino
Cita:
torito comentó:
pero de donde sacaste los valores de tu funcion
GetDeviceCaps(DC, LOGPIXELSX)
En la Win32.hlp... del menú de delphi Help\Windows SDK


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #13  
Antiguo 21-11-2003
Avatar de torito
torito torito is offline
Miembro
 
Registrado: jun 2003
Ubicación: Querétaro, Mex.
Posts: 349
Poder: 21
torito Va por buen camino
ahhhhhhhhh ok muchas gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:04:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi