Ver Mensaje Individual
  #4  
Antiguo 20-07-2007
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Reputación: 20
afxe Va por buen camino
Hay que darlo todo masticadito....

Un ejemplo simple, y poco fiable si jugueteamos a menudo con la instalación de impresoras en el panel de control... pero no suele ser lo normal:

Cargamos las impresoras en un combobox para poder guardar en variables qué impresora usar en cada caso (no olvideis hacer un Use de la unidad PRINTERS):

Código Delphi [-]
procedure CargaImpresoras(cb: TComboBox);
var
  i : integer;
  Device, Driver, Port : array[0..255] of Char;
  hDMode : THandle;
begin
  cb.Items.Clear;
  for i := 0 to Prev(Printer.Printers.Count) do begin
     Printer.PrinterIndex := i;
     Printer.GetPrinter(Device, Driver, Port, hDMode);
     cb.Items.Add(Device);
  end;
  cb.ItemIndex := 0;
end;

Usad este combobox para que el usuario seleccione las impresoras a usar para cada caso, y almacenais la propiedad cb.ItemIndex en variables globales (nImpCocina, nImpBarra ....). Para que no tener que configurar las impresoras cada vez que se inicie el programa, guardad esa información en un .INI o en el registro del windows. Cuando querais activar una impresora concreta poneis :

Código Delphi [-]
  Printer.PrinterIndex := nImpCocina;

Si usais el QuickReport:

Código Delphi [-]
  QuickRep1.PrinterSettins.PrinterIndex := nImpCocina;

Espero haberlo escrito bien... no tenía a mano fuentes para hacer un copiar y pegar.
Responder Con Cita