Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-08-2003
botones67 botones67 is offline
Miembro
 
Registrado: may 2003
Posts: 104
Poder: 0
botones67 cantidad desconocida en este momento
Impresora activa

Hola a todos.

tengo un Qrepor1 que quiero imprimir qrepor1.print ¿ hay alguna manera de saber si la impresora esta operativa antes de imprimir ?
GRACIAS ANTICIPADAS.

Botones67
Responder Con Cita
  #2  
Antiguo 21-08-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: 27
delphi.com.ar Va por buen camino
Estos dos links, muestran como averiguar el estado de la impresora:

http://www.experts-exchange.com/Prog..._20147343.html
http://www.experts-exchange.com/Prog..._20118086.html

(Ten en cuenta que el del TPrinterStatus, no creo que funcione en plataformas NT, porque trabajan en forma directa con el puerto)

Saludos!
__________________
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 21-08-2003
botones67 botones67 is offline
Miembro
 
Registrado: may 2003
Posts: 104
Poder: 0
botones67 cantidad desconocida en este momento
hola de nuevo.

Y como se implementaria Tprinterstaus?

Gracias por todo.
Responder Con Cita
  #4  
Antiguo 21-08-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: 27
delphi.com.ar Va por buen camino
Solo tendrías que crear una instancia de esa clase y usar sus propiedades, asignándole previamente el puerto de la impresora, sinó por defecto toma la impresora que este conectada al LPT1.
¿Sabes como hacerlo?


O puedes usar el otro código que hace lo mismo:
Código:
function PrinterStatus : integer; 
asm 
  mov ah, 2    // function 2 - returns status of port 
  mov dx, 0    // lpt1 = 0, lpt2 = 1 etc 
  int $17      // status in ah 
  mov al, ah 
  and eax, $FF // status now in eax with top 24 bits cleared 
end; 

const 
  PrinterCodes : array [0..7] of string = 
    ('printer timed-out', 
     'unused', 
     'unused', 
     'I/O error', 
     'printer selected', 
     'out of paper', 
     'printer acknowedgment', 
     'printer not busy'); 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  L,P : integer; 
begin 
  P := PrinterStatus;  //status of printer in P 
  ListBox1.Clear; 
  for L := 0 to 7 do 
    if P and (1 shl L) <> 0 then 
      ListBox1.Items.Add (PrinterCodes [L]); 
end;
__________________
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 21-08-2003
botones67 botones67 is offline
Miembro
 
Registrado: may 2003
Posts: 104
Poder: 0
botones67 cantidad desconocida en este momento
Lo siento, no sé como hacerlo, indicame por favor.
Responder Con Cita
  #6  
Antiguo 27-10-2005
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
Delphi he probado tu codigo el que das para saber el estado de una impresora y me da una excepcion de memoria al hacer click sobre el boton, seguro que esta todo bien?. Lo he probado en windows xp sp2. Al estar basado sobre nt seguramente por eso no me va.

Última edición por serhasae fecha: 27-10-2005 a las 13:06:55.
Responder Con Cita
  #7  
Antiguo 27-10-2005
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: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por serhasae
Delphi he probado tu codigo el que das para saber el estado de una impresora y me da una excepcion de memoria al hacer click sobre el boton, seguro que esta todo bien?. Lo he probado en windows xp sp2. Al estar basado sobre nt seguramente por eso no me va.
No funcionará sobre arquitecturas NT. Sobre las plataformas Win9x puedes dialogar directamente con el hardware, 0% abstracción!... En arquitecturas NT, esto no es posible, siempre hay que dialogar a través del núcleo.
Vas a tener que hacerlo mediante GetPrinter.

Saludos!
__________________
delphi.com.ar

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



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 23:03:08.


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