Club Delphi  
    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 28-05-2003
fanon fanon is offline
Registrado
 
Registrado: may 2003
Posts: 9
Poder: 0
fanon Va por buen camino
Smile Me da error en la clase pprinterinfo2

Hola de nuevo, he intentado usarlo, pero me da error en la clase pprinter info2, donde la defines o que unidad tiene que usar, gracias. Sabes algun otro metodo aparte??. salu2
Responder Con Cita
  #2  
Antiguo 28-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Hola fanon

Me ha costado entender que esto venia del otro hilo en el que te conteste, intenta poner los mesajes en el mismo hila

Esto lo tienes definido en la unit WinSpool

Espero te sirva
Responder Con Cita
  #3  
Antiguo 28-05-2003
fanon fanon is offline
Registrado
 
Registrado: may 2003
Posts: 9
Poder: 0
fanon Va por buen camino
Thumbs up

Hola de nuevo, muchas gracias por tu ayuda, pero necesito una cosa mas. Como le paso los parametros, porque no me aclaro como debo hacerlo, y otra cosa mas, como puedo imprimir un fichero de texto por ella??, mucha gracias, espero no agobiarte con tanta pregunta. un salu2.
Responder Con Cita
  #4  
Antiguo 28-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
un ejemplo de llamada

Código:
 
AddImpresora( 'EPSON_GEN', 'LPT1:', 'Generic / Text Only', 'winprint' );
Para imprimir por ella, tendras que recorrer las impresoras instaladas hasta que des con ella, buscando por el nombre que le has asignado (en el ejemplo EPSON_GEN). Añade Printers en el uses de tu form

Código:
var i : integer;
begin
     i := 0;
     while (Printer.Printers[i] <> 'EPSON_GEN') and 
         (i < Printer.Printers.Count - 1) do
        inc(i);
     if i < Printer.Printers.Count - 1 then
        Printer.PrinterIndex := i;
end;
Espero te sirva
Responder Con Cita
  #5  
Antiguo 28-05-2003
fanon fanon is offline
Registrado
 
Registrado: may 2003
Posts: 9
Poder: 0
fanon Va por buen camino
Unhappy

Lo siento, pero me rayo un puñao con ese codigo que me mandaste, no puedo hacerlo funcionar. Lo que tengo que hacer es mandarle al COM2 un fichero de texto. La movida que ya te explique, que tengo un visor lcd y para inicializarlo necesito crear una impresora generica/texto y seguidamente imprimir por ella, una vez hecho esto, me va de p.m, pero apago el ordenador y me toca hacerlo de nuevo. Tienes algun truco que pueda servirme??. Yo he pensado coger la impresora en tiempo de ejecucion con el GetPrinter y luego mandarle un fichero .txt cualquiera q tenga en el disco, y luego destruirlo, pero no se utilizar estos comandos, sabrias decirme algo??, stoy ya desesperado. gracias.salu2
Responder Con Cita
  #6  
Antiguo 28-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
jejeje, bueno, tranquilo, busquemos otras alternativas.

Si coges el asistente para impresoras e instalas tu impresora Generic Text Only en el sistema y luego la utilizas para tus propositos te serviria? Asi no tendrias que instalarla cada vez en el sistema

Otra alternativa es la que te comentaba en el otro hilo, la del codigo de escape del visro. Lo has mirado en la documentacion?

Tambien podrias mirar de utilizar algun componente de acceso a los Com como el TCommPortDriver (es el que yo utilizo para hacer precisamente lo que tu quieres hacer, "imprimir" en un visor LCD). Hay muchos y muchos son free, mira en Torry's a ver (creo que este era free, ahora no recuerdo)

Ya nos diras alguna cosa al respecto
Responder Con Cita
  #7  
Antiguo 28-05-2003
fanon fanon is offline
Registrado
 
Registrado: may 2003
Posts: 9
Poder: 0
fanon Va por buen camino
Hola, eso es lo que quiero hacer, instalarla en windows, y luego solamente tener que mandarle un fichero de texto en tiempo de ejecucion, de todas maneras, me he bajado el tcomport y al instalarlo me da error en esta linea:
WriteFile( FComPortHandle, DataPtr^, nToSend, nSent, nil ); y me pone lo siguiente:
[Error] ComDrv32.pas(845): Types of actual and formal var parameters must be identical,

Sabes porque da ese error, yo trabajo en delphi 6 y el componente creo q ponia hasta el 3, sera por eso??.

Bueno, de todas maneras, dime como puedo enviarle un fichero de texto en tiempo de ejecucion y a ver si asi funciona, pk los codigo de escape que me pone en el manual, al introducirlos me salen simbolos raros, no se pk puede ser, pero pongo el codigo de inicializar le visor y no sale nada. Se los paso asi:
AssignFile(LCD,'COM2');
Rewrite(LCD);
Writeln(LCD,#27+#81+#65+' Bienvenido a...'+#13);
Writeln(LCD,#27+#81+#66+' *** Mark'+#96+'s *** '+#13);
CloseFile(LCD);
y me salen los simbolos raros. salu2.
Responder Con Cita
  #8  
Antiguo 28-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Hola

Te he enviado un correo con el componente que yo utilizo (el Delphi 6) y que trae una demo. Miratelo a ver que te parece

Espero que ahora si que si

Por cierto, yo utilizo esta funcion para imprimir el los visores LCD.
Nota : los visores que yo utilizo tienen 2 lineas, por lo que un parametro de la funcion es la linea en la que quiero escribir

Parametros de la funcion:
* Puerto : TCommPortDriver -> componente de acceso a puerto serie
* Text : string --> texto que queremos que salga por el visor
* Linea : integer --> 1 o 2 (linea en la que queremos escribir)
* BorraContenido : boolean --> si true, borra TODO el contenido del visor antes de imprimir en el, sino, SOLO borra la linea en la que queremos escribir

Código:
procedure MissatgeDisplay(Puerto : TCommPortDriver; Text : string; Linea : integer;
                          BorraContenido : boolean);
var tmp : string;
begin
     // Si no está conectado, no hacemos nada
     if Puerto.Connected then
     begin
        if length(Text) > 20 then
           Text := copy(Text, 1, 20);
        if BorraContenido then
         begin
              // Borramos contenido del Visor
              tmp := chr(12);
              Puerto.SendString(tmp);
              tmp := chr(31) + chr(36) + chr(1) + chr(1) + '                    ';
              Puerto.SendString(tmp);
              tmp := chr(31) + chr(36) + chr(1) + chr(2) + '                    ';
              Puerto.SendString(tmp);
         end;
        case Linea of
             1 : begin
                      tmp := chr(31) + chr(36) + chr(1) + chr(1) + '                    ';
                      Puerto.SendString(tmp);
                      tmp := chr(31) + chr(36) + chr(1) + chr(1) + Text;
                 end;
             2 : begin
                      tmp := chr(31) + chr(36) + chr(1) + chr(2) + '                    ';
                      Puerto.SendString(tmp);
                      tmp := chr(31) + chr(36) + chr(1) + chr(2) + Text;
                 end;
        end;
        // Escribimos texto
        Puerto.SendString(tmp);
     end;
end;
Ejemplo de llamada

Código:
begin
     MissatgeDisplay(CommPortDriver1, 'Hola mundo!!!', 1, true);
end;

Última edición por __cadetill fecha: 28-05-2003 a las 20:12:40.
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 08:55:27.


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