Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-02-2011
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 23
lbidi Va por buen camino
Hola, recien he podido retomar este tema.

Sigo con el mismo problema, el programa se me cuelga, y lo debo cerrar forzosamente. He aqui el codigo.

Código Delphi [-]
    AssignFile( Printer, 'LPT1' );
    FileMode := fmOpenReadWrite;
    try
       {Aqui trato de abrir la impresora}
       {$I-} Reset( Printer ); {$I+}
       Rewrite( Printer );
       Write( Printer, CHR(27) + CHR(64 ) );   <--- aqui se tranca
    except
        {Si hay algun problema se va a meter en este bloque sino lo salta}
        on e:Exception do
        begin
           ShowMessage('La impresora no responde'+#13+e.Message);
        end;
    end;

Cualquier ayuda sera bienvenida.

Muchas gracias.

Saludos.

Leo
Responder Con Cita
  #2  
Antiguo 02-02-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Repito:
Cita:
Si nos cuentas cual es el mensaje de error, quizás podamos ayudarte un poco más.
Ya nos has dicho donde falla. Es en la linea write(Printer, ...);
Ok, pero ¿Cuál es el mensaje de error?
Se supone que en el centro de la pantalla debería salir una ventana que dice

-------------------------------------------------
La impresora no responde
Un texto, en inglés seguramente, que describe el problema.
-------------------------------------------------
Responder Con Cita
  #3  
Antiguo 02-02-2011
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 23
lbidi Va por buen camino
Es que no me sale ningun error..

Solamente se congela la aplicacion y debo cerrarla con la cruz, a lo cual me confirma que la aplicacion no responde.

Gracias..
Responder Con Cita
  #4  
Antiguo 02-02-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Puede que tengas que esperar el "timeout" de la impresora para que finalmente salga el error, déjala un ratito a ver.
Responder Con Cita
  #5  
Antiguo 02-02-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Quita las directivas de compilacion {$I(+-)}
{$I-} Reset( Printer ); {$I+}
Esto hace que no salte ninguna exception, a pesar de que puede haber algún error.
Si utilizas estas directivas de compilación deberías ver el resultado de IOResult, para ver si todo ha ido bien.
Código Delphi [-]
    AssignFile( Printer, 'LPT1' );
    FileMode := fmOpenReadWrite;
    try
       {Aqui trato de abrir la impresora}
       Reset( Printer );
       Rewrite( Printer );
       Write( Printer, CHR(27) + CHR(64 ) );   <--- aqui se tranca
    except
        {Si hay algun problema se va a meter en este bloque sino lo salta}
        on e:Exception do
        begin
           ShowMessage('La impresora no responde'+#13+e.Message);
        end;
    end;

De todos modos no se porqué haces un Reset y luego un Rewrite.
Deberías hacer solo uno de ellos y creo que es Rewrite.
Responder Con Cita
  #6  
Antiguo 02-02-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Otra cosa: Agrega : (dos puntos) después del puerto al que quieres imprimir. De lo contrario entenderá que es un archivo sin extensión.
Y si puedes no utilices Printer como variable, pues puede estar confundiéndose con la Unit Printer. Yo la llamaría Puerto.
AssignFile( Puerto, 'LPT1:' );

Código Delphi [-]

var
   Puerto : TextFile;
[...]
    AssignFile( Puerto, 'LPT1:' );
    FileMode := fmOpenReadWrite;
    try
       {Aqui trato de abrir la impresora}
       Rewrite( Puerto);
       Write( Puerto, CHR(27) + CHR(64 ) );   <--- aqui se tranca
    except
        {Si hay algun problema se va a meter en este bloque sino lo salta}
        on e:Exception do
        begin
           ShowMessage('La impresora no responde'+#13+e.Message);
        end;
    end;
    CloseFile( Puerto );
Responder Con Cita
  #7  
Antiguo 02-02-2011
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 23
lbidi Va por buen camino
Estimados.. he hecho los cambios sugeridos y dado tiempo al sistema para comprobar si me tiraba el error.

Efectivamente luego de un buen tiempo, me ha largado el siguiente error.

"Error E/S 1167".

No entiendo porque el sistema no lo capta antes cuando se hace el try.

Gracias a ambos.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
redireccionar web angelp4492 Internet 3 22-01-2008 01:57:45
Código de verificación para prevenir envíos automáticos elcigarra PHP 2 04-05-2007 01:01:19
Cómo prevenir que se cierre??? Pandre Varios 5 11-02-2004 09:02:26
Prevenir la salida de la aplicación negama Varios 3 31-05-2003 03:05:02


La franja horaria es GMT +2. Ahora son las 15:36:02.


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
Copyright 1996-2007 Club Delphi