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 14-05-2007
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Poder: 22
sur-se Va por buen camino
Elección de la bandeja de impresión

Hola.
Con el código siguiente puedo elegir la bandeja de impresión:
Código:
 
          with Printer do
           begin
                Getprinter(ADevice, ADriver, APort, ADeviceMode);
                DevMode := GlobalLock(ADeviceMode);
                // Le indicamos la bandeja por la que queremos sacar el informe.
                DevMode.dmDefaultSource := <Bandeja>;
           end;
El problema está en como saber que número de le corresponde a cada una de las bandejas de cada impresora. El código siguiente me dice que bandejas tiene la impresora actualmente seleccionada, pero no sé a que valor debo asignar a la propiedad anteriormente indicada (dmDefaultSource). Incluso he probado a hacer múltiples pruebas con números y no he conseguido encontrar la que le corresponde, imprimiendo la impresora por donde quiere.

Código:
procedure TMainForm.GetBinNames;
var
  BinNames: Pointer;
  i: integer;
begin
{$R-} // Range checking must be turned off here.
  // First determine how many bin names are available.
  Rslt := DeviceCapabilitiesA(Device, Port, DC_BINNAMES, nil, nil);
  if Rslt > 0 then
  begin
    { Each bin name is 24 bytes long. Therefore, allocate Rslt*24 bytes to hold
      the bin names. }
    GetMem(BinNames, Rslt*24);
    try
      // Now retrieve the bin names in the allocated block of memory.
      if DeviceCapabilitiesA(Device, Port, DC_BINNAMES, BinNames, nil) = -1 then
        raise Exception.Create('DevCap Error');
      //{ Add the information to the appropriate list box.
      AddListViewItem('BIN NAMES', EmptyStr, lvGeneralData);
      for i := 0 to Rslt - 1 do
      begin
        AddListViewItem(Format('   Bin Name %d', [i]),
          StrPas(TBinNames(BinNames^)[i]), lvGeneralData);
      end;
    finally
      FreeMem(BinNames, Rslt*24); 
    end;
  end;
{$R+} // Turn range checking back on.
end;
¿Alguien sabe como determinar la correspondencia entre una y otra?
Un saludo.
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
Elección de Hardware TJose Debates 2 16-01-2007 11:20:17
La paradoja de la elección, o cuando más es menos marcoszorrilla Noticias 5 26-07-2006 19:36:03
Sugerencias sobre la eleccion de bbdd taita Conexión con bases de datos 2 01-02-2005 13:24:42
La elección correcta ! Xianto Tablas planas 2 07-01-2005 12:35:24
Eleccion de BD... Tanix Varios 6 12-12-2003 09:50:05


La franja horaria es GMT +2. Ahora son las 21:35:53.


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