Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   stasus impresora (https://www.clubdelphi.com/foros/showthread.php?t=3113)

botones67 22-08-2003 09:14:42

stasus impresora
 
Ayer muy amablemente delphi.com.ar, me dio una posile solución para saber el estado de la impresora antes de imprimir.

El codigo propuesto no funciona me da error interno de memoria.
code:--------------------------------------------------------------------------------
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;


Tambien Hizo referencia a crear una instancia de TPrinterStatus y utilizar sus propiedades.

¿ Me podias decir como concretamente como se crea esta instancia y como poder utilizar sus propiedades.?

Saludos y gracias anticipadas.

BOtones67

delphi.com.ar 22-08-2003 16:01:11

Verdaderamente, te recomiendo el otro método , porque utiliza las Apis del SPOOL de Windows... y no trabaja directamente con el puerto, creo haberte comentado que en algunas plataformas (NT) esto no esta permitido. Te he pasado los dos métodos, solo en carácter informativo, y lamento no tener tiempo como para darte una explicación resumida.
De todos modos, este código yo lo he probado anteriormente sin problemas, en un Win98... el único problema es que funciona bien solo con impresoras locales.

PD: Lee la guía de estilos, y evita crear nuevos hilos para un mismo tema.

Saludos!

botones67 22-08-2003 17:21:05

Muchas gracias por perder tu tiempo conmigo.

Saludos.


La franja horaria es GMT +2. Ahora son las 06:34:22.

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