Club Delphi  
    Paypal   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 27-03-2007
manolop manolop is offline
Miembro
 
Registrado: may 2005
Posts: 109
Poder: 22
manolop Va por buen camino
Impresion con PrintDialog

Hola, lo primero es decir que ya he estado mirando los foros y pese a que parece que lo hago bien, no puedo seleccionar correctamente la impresión. A continuación pongo el codigo que intento ejecutar:

Código Delphi [-]
          defecto:=Printer.PrinterIndex;
          if  PrintDialog1.Execute then
            begin
              impr:= Printer.PrinterIndex;
              SetDefaultPrinter1(impr);
              sleep(500);    //para dar tiempo al mensaje de actualizacion de      la impresora
             ShellExecute(Printer.Handle, 'print', PChar('ruta_del_archivo'),  nil, nil, 0);
             SetDefaultPrinter1(defecto);
            end;

Donde la function SetDefaultPrinter1 es la siguiente:
Código Delphi [-]
procedure SetDefaultPrinter1(NewDefPrinter: integer);
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
hDeviceMode: THandle;
begin
// Cogemos la seleccionada en el combo
 //default
// Obtener la impresora eleccionada
Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
// Montamos la cadena necesaria...
StrCat( Device, ',');
StrCat( Device, Driver );
StrCat( Device, ',');
StrCat( Device, Port );
// Modifica WIN.INI o el registro segun sea W9x o WNT
WriteProfileString( 'windows', 'device', Device );
StrCopy( Device, 'windows' );
// Avisar de que hemos cambiado "algo"
SendMessage( HWND_BROADCAST, WM_SETTINGCHANGE, 0, longint( @Device));

end;

Lo unico que quiero hacer es poder selecionar una impresora y mandar el archivo a imprimir.
Otra cosa que no he podido acabar de solucionar es enviar por fax un archivo pero creo que lo unico que voy a poder hacer es mandar a imprimir con este mismo código a la impresora Fax que trae windows XP. Asi que si alguien ha poddo enviar un fax le estaria eternamente agradecido. Muchas gracias por el tiempo y disculpad cualquier molestia ocasionada.

Última edición por manolop fecha: 28-03-2007 a las 14:00:22.
Responder Con Cita
  #2  
Antiguo 27-03-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 22
droguerman Va por buen camino
hey pero en la función SetDefaultPrinter1 no usas el parámetro NewDefPrinter en ningún momento, porque no concatenas con Printer.Printers[Printer.PrinterIndex]
__________________
self.free;

Última edición por droguerman fecha: 27-03-2007 a las 06:00:21.
Responder Con Cita
  #3  
Antiguo 28-03-2007
manolop manolop is offline
Miembro
 
Registrado: may 2005
Posts: 109
Poder: 22
manolop Va por buen camino
Si en efecto se me habia pasado eso pero ya lo he puesto bien con la linea
Código Delphi [-]
Printer.PrinterIndex := NewDefPrinter;

antes de:
Printer.GetPrinter

Pero sigue sin funcionar correctamente, no me selecciona la impresora.
Alguien tiene alguna idea, pq de verdad que necesito solucionar este tema. muchas gracias por todo
Responder Con Cita
  #4  
Antiguo 10-09-2010
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 585
Poder: 23
santiago14 Va por buen camino
Cita:
Empezado por droguerman Ver Mensaje
hey pero en la función SetDefaultPrinter1 no usas el parámetro NewDefPrinter en ningún momento, porque no concatenas con Printer.Printers[Printer.PrinterIndex]
Código Delphi [-]
Printer.Printers[Printer.PrinterIndex]
Esto funcionó de maravillas, la verdad es que a veces uno no le encuentra la vuelta a la cosa y es tan sencillo...

Gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
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
como puedo imprimir con el objeto printdialog DARK_WARRIOR Impresión 10 09-11-2006 19:21:54
rango de paginas en PrintDialog reina Impresión 2 29-06-2006 06:23:29
Sobre PrintDialog erfedecai Impresión 0 10-06-2006 13:03:14
¿ Existe el PrintDialog en Kylix ? athal Lazarus, FreePascal, Kylix, etc. 12 20-06-2004 20:33:50
obtener el nombre de impresora de printdialog Rafa Impresión 1 29-10-2003 13:27:14


La franja horaria es GMT +2. Ahora son las 14:07:58.


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