Ver Mensaje Individual
  #2  
Antiguo 08-04-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola newtron

La verdad es que no me he topado con WS 2016, pero prueba este ejemplo a ver si te funciona:
Código Delphi [-]
....
implementation

uses Printers;

function GetDefaultPrinter(prnName : PAnsiChar; var bufSize : DWORD ) : BOOL;
  stdcall; external 'winspool.drv' name 'GetDefaultPrinterA';

function GetDefaultPrinterName(): string;
var
  lpName: PChar;
  szBuff: DWORD;
begin
  GetDefaultPrinter(nil, szBuff);
  GetMem(lpName, szBuff);
  try
    GetDefaultPrinter(lpName, szBuff);
    Result := lpName;
  finally
    FreeMem(lpName);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Items     := Printer.Printers; // (*)
  ComboBox1.ItemIndex := -1;
  ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(GetDefaultPrinterName());
end;
(*) Para obtener la lista de impresoras se podría usar la función EnumPrinters pero si no recuerdo mal, es la que usa la propiedad Printers así que no creo que se gane mucho...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita