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.