ola pessoal preciso do ajuda de vcs no seguinte:
gostaria de selecionar uma impressora atraves de um combobox e mandar
imprimir um relatorio naquela impressora selecionada
mais nao estou conseguindo fazer esse codigo.
vejam só um amigo mim passou esse codigo,mais só que ao imprimir ele
trocar a impressora padrao pela que foi selecionada no combobox ,mais
eu so quero que ela imprima e nao troque a impressora padrao. algeum
de vcs sabe com se faz isso . selecionar a impressora e imprimir
atraves dquela impressora selecionada?
 o exemplo que fiz é esse

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, printers, Variants, Classes, Graphics,
Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ComboBox1: TComboBox;

  procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}
procedure SetDefaultPrinter(PrinterName: String);
var
  I: Integer;
  Device : PChar;
  Driver : Pchar;
  Port : Pchar;
  HdeviceMode: Thandle;
  aPrinter : TPrinter;
begin
  Printer.PrinterIndex := -1;
  getmem(Device, 255);
  getmem(Driver, 255);
  getmem(Port, 255); 
  aPrinter := TPrinter.create;
  for I := 0 to Printer.printers.Count-1 do
  begin
  if Printer.printers[i] = PrinterName then
  begin
  aprinter.printerindex := i;
  aPrinter.getprinter
  (device, driver, port, HdeviceMode);
  StrCat(Device, ',');
  StrCat(Device, Driver );
  StrCat(Device, Port );
  WriteProfileString('windows', 'device', Device);
  StrCopy( Device, 'windows' );
  SendMessage(HWND_BROADCAST, WM_WININICHANGE,
  0, Longint(@Device));
  end;
  end;
  Freemem(Device, 255);
  Freemem(Driver, 255);
  Freemem(Port, 255);
  aPrinter.Free;
end; 
procedure TForm1.FormCreate(Sender: TObject);
begin
combobox1.Items.Assign(printer.printers);
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
setdefaultprinter(combobox1.Text);
form2.QuickRep1.Preview;
end;

end.
 

Responder a