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 05-05-2005
ElCherchu ElCherchu is offline
Miembro
 
Registrado: may 2003
Posts: 76
Poder: 21
ElCherchu Va por buen camino
Traer los tipos de papel de una impresora

Hola amigos...

Tengo un sistema en el que configuro la impresora para algunos documentos y para eso uso un formulario de configuración de impresora, pero ahora me he visto en la necesidad de ademas de la impresora poder traer los tipos de papel cuando selecciono una impresora de un combo que me trae todas las impresoras instalada en la pc.

Como puedo traer los tipos de papel cuando selecciono una impresora?.

Cuento con ustedes...

ElCherchu...
Responder Con Cita
  #2  
Antiguo 05-05-2005
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
Pon un memo y mira este código:

Código Delphi [-]
 unit Tipospapel;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   StdCtrls,WinSpool,Printers;
   procedure GetPapernames(sl: TStrings);
 type
   TForm1 = class(TForm)
     Button1: TButton;
     Memo1: TMemo;
     procedure Button1Click(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
 
 implementation
 
 {$R *.DFM}
 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
  GetPapernames(memo1.Lines);
 end;
 
 procedure GetPapernames(sl: TStrings);
 type
   TPaperName      = array [0..63] of Char; 
   TPaperNameArray = array [1..High(Word) div SizeOf(TPaperName)] of TPaperName; 
   PPapernameArray = ^TPaperNameArray; 
 var 
   Device, Driver, Port: array [0..255] of Char; 
   hDevMode: THandle; 
   i, numPaperformats: Integer; 
   pPaperFormats: PPapernameArray; 
 begin 
   Printer.PrinterIndex := -1; // Standard printer 
   Printer.GetPrinter(Device, Driver, Port, hDevmode); 
   numPaperformats := WinSpool.DeviceCapabilities(Device, Port, DC_PAPERNAMES, nil, nil); 
   if numPaperformats <> 0 then  
   begin 
     GetMem(pPaperformats, numPaperformats * SizeOf(TPapername)); 
     try 
       WinSpool.DeviceCapabilities(Device, Port, DC_PAPERNAMES, 
         PChar(pPaperFormats), nil); 
       sl.Clear; 
       for i := 1 to numPaperformats do sl.Add(pPaperformats^[i]); 
     finally 
       FreeMem(pPaperformats); 
     end; 
   end; 
 end; 
 
 end.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 07-05-2005
ElCherchu ElCherchu is offline
Miembro
 
Registrado: may 2003
Posts: 76
Poder: 21
ElCherchu Va por buen camino
Hola a todos..

Quiero dar la gracia a marcoszorrilla por el código que envió al foro sobre los tipos de papel para una impresora.. esto funciona perfectamente...

Gracias..

ElCherchu...
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


La franja horaria es GMT +2. Ahora son las 15:19:29.


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