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 02-04-2006
quim quim is offline
Registrado
 
Registrado: abr 2006
Posts: 3
Poder: 0
quim Va por buen camino
imprimir en una red española con Delphi aleman

Hola,

tengo la version Delphi 5 (aleman) y no puede imprimir desde un programa Delphi en una impresora de red española. La impresora funciona con qualquier otro programa sin problema alguno y la programa funciona cuando la impresora está directamente conectada o la red es aleman. El fallo indicado es (Fließkommaüberlauf) debordamiento de una variable del tipo "float".

quizas puedo compilar mi alguien el codigo siguiente con una version español
(con un boton) y enviarme la exe para verificar si el problema viene de la versión.

Código Delphi [-]
implementation

{$R *.DFM}

uses printers;

procedure TForm1.Button1Click(Sender: TObject);
begin
  printer.begindoc;
  printer.canvas.textout(100,100,'TEXT');
  printer.enddoc;
end;

end.

Gracias, Quim - achim.reineke@gmx.de

Última edición por dec fecha: 02-04-2006 a las 12:30:57.
Responder Con Cita
  #2  
Antiguo 02-04-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
!qué raro!, de todas formas, seguro que podemos ayudarte.
Responder Con Cita
  #3  
Antiguo 02-04-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Quizás el problema es que a la hora de mandarle a imprimir no encuentra la impresora al ser una impresora de Red, por otra parte el problema del idioma me lleva a pensar que el nombre de la impresora quizás no sea el mismo.

Porque no creas una rutina o función que te muestre las impresoras del sistema eliges una y luego lanzas el TextOut.

Mira este ejemplo, que yo suelo utilizar, aunque aquí la impresora ya la he guardado en una tabla y lo que hago es al mandar imprimir la vuelve a buscar en el sistema para asegurarse de que sigue existiendo.

Código Delphi [-]
Function GetImpresora(Impre:String):Integer;
Var
nCont:Integer;
lSearch:Boolean;
cNewLIne:String;
begin
lSearch:=False;
cNewLine:=Chr(10)+Chr(13);

  For nCont:=0 to Printer.Printers.Count - 1 do
  //buscamos la impresora en la lista del sistema
  begin

    if Pos(impre, Printer.Printers[nCont]) <> 0 then
    begin
    lSearch:=True;
    Result:=nCont;
    Break;
    end;

  end;

  if lSearch = False then
  begin
  Result:=-1;
  ShowMessage('Impresora no encontrada:'+cNewLine+Impre+cNewLine+'Se utilizará la predefinida.');
  end;
          
end;

......
procedure TfrRepara.SpeedButton2Click(Sender: TObject);
begin

  if  Not DmAni.Impres.Locate('Impresora',Dmani2.ConfImprefacturas.Value,[]) then
  DmAni.Impres.First;


Printer.PrinterIndex:=GetImpresora(DmAni2.ConfLptFacturas.value);
SetPaperSize(DmAni2.ConfAltoPapelFacturas.Value,Dmani2.ConfAnchoPapelFactuas.Value);

  With Printer.Canvas do
  begin
    Printer.BeginDoc;
    CabeceraRepara();
    DetalleRepara();
    Printer.EndDoc;
  end;
end;

Tschüss.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 03-04-2006
quim quim is offline
Registrado
 
Registrado: abr 2006
Posts: 3
Poder: 0
quim Va por buen camino
el problema sigue

Hola morcoszorilla,

parece que hablas también aleman la función que me has enviado va bien.

GetImpresora('HP Color LaserJet 2600n');

detecta la impresora sin problemas y también puedo imprimir el código fuente (y todo lo quiero) desde mi ordenador. Pero imprimir desde el programa no va.

Me gustaría hacer una prueba con una versión "española" del mismo código. Quizas puedes enviarme la versión EXE.

Ciao, Quim
Código Delphi [-]
 
uses printers;
Function GetImpresora(Impre:String):Integer;
Var
nCont:Integer;
lSearch:Boolean;
cNewLIne:String;
begin
lSearch:=False;
cNewLine:=Chr(10)+Chr(13);
  For nCont:=0 to Printer.Printers.Count - 1 do
  //buscamos la impresora en la lista del sistema
  begin
    if Pos(impre, Printer.Printers[nCont]) <> 0 then
    begin
    lSearch:=True;
    Result:=nCont;
    Break;
    end;
  end;
  if lSearch = False then
  begin
  Result:=-1;
  ShowMessage('Impresora no encontrada:'+cNewLine+Impre+cNewLine+'Se utilizará la predefinida.');
  end;
  With Printer.Canvas do
  begin
    Printer.BeginDoc;
    textout(100,100,'test');
    Printer.EndDoc;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  GetImpresora('HP Color LaserJet 2600n');
end;
end.

Última edición por marcoszorrilla fecha: 03-04-2006 a las 08:50:39.
Responder Con Cita
  #5  
Antiguo 03-04-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Compila esto lo acabo de probar y funciona sin problemas, claro que tienes que tener alguna impresora como predterminada.
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Printers,
  StdCtrls;

  Function GetImpresora(Impre:String):Integer;
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  GetImpresora('HP Color LaserJet 2600n');
    With Printer.Canvas do
  begin
    Printer.BeginDoc;
    textout(100,100,'test');
    Printer.EndDoc;
  end;
end;

Function GetImpresora(Impre:String):Integer;
Var
nCont:Integer;
lSearch:Boolean;
cNewLIne:String;
begin
lSearch:=False;
cNewLine:=Chr(10)+Chr(13);
  For nCont:=0 to Printer.Printers.Count - 1 do
  //buscamos la impresora en la lista del sistema
  begin
    if Pos(impre, Printer.Printers[nCont]) <> 0 then
    begin
    lSearch:=True;
    Result:=nCont;
    Break;
    end;
  end;

  if lSearch = False then
  begin
  Result:=-1;
  ShowMessage('Impresora no encontrada:'+cNewLine+Impre+cNewLine+'Se utilizará la predefinida.');
  end;

end;


end.

Si quieres que te manda el Exe, me tienes que dar tu correo.

Auf Wiedersehen
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 03-04-2006
quim quim is offline
Registrado
 
Registrado: abr 2006
Posts: 3
Poder: 0
quim Va por buen camino
mi correo:

achim.reineke@gmx.de

gracias
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar a Delphi 2005 razadi Varios 1 01-06-2005 17:07:55
donde bajar info, tutoriales sobre delphi .net? Pascual Montes .NET 2 09-05-2005 19:28:10
Cual es Direfencia entre delphi win32 y .net ? Pascual Montes .NET 1 28-04-2005 14:45:36
Cambio de Delphi 5 al delphi 7 User_Baja_2 Varios 5 28-06-2004 16:37:37
La proxima versión de Delphi será compatible con la VCL y el .NET SMTZ Noticias 0 30-05-2004 09:34:16


La franja horaria es GMT +2. Ahora son las 17:17:00.


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