Использование функции OpenPrinter

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Использование функции OpenPrinter

Сообщение ykirienko » 02.12.2015 15:31:46

Не работает следующий код:
Код: Выделить всё
TForm1 = class(TForm)
    btnStart: TButton;
    cbPrinters: TComboBox;
    procedure btnStartClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  PrintersInfo: array[0..1023] of PRINTER_INFO_5;
  hPrinter: PHandle;         

procedure TForm1.FormCreate(Sender: TObject);
var
I, Needed, Returned: DWORD;
begin
if EnumPrinters(PRINTER_ENUM_LOCAL or PRINTER_ENUM_CONNECTIONS, nil, 5, @PrintersInfo, SizeOf(PrintersInfo), @Needed, @Returned) then
   if Returned > 0 then  begin
     for I := 0 to Returned - 1 do
       cbPrinters.Items.Add(PrintersInfo[I].pPrinterName);
      btnStart.Enabled := True;
      cbPrinters.ItemIndex := 1;
   end;
end;

procedure TForm1.btnStartClick(Sender: TObject);
begin
  if OpenPrinter(PChar(PrintersInfo[cbPrinters.ItemIndex].pPrinterName), hPrinter, nil) then
// всякий код
  else
  RaiseLastWin32Error;
end;     


OpenPrinter всегда возвращает false, пробовал всякие варианты, не помогло.
RaiseLastWin32Error возвращает:
System error, (OS Code 87): Параметр задан неверно.

Подскажите в чем ошибка.
ykirienko
незнакомец
 
Сообщения: 2
Зарегистрирован: 02.12.2015 15:08:33

Re: Использование функции OpenPrinter

Сообщение sts » 02.12.2015 16:04:43

вот что пишут в fastreporte
Код: Выделить всё
{$IFDEF FPC}
  if OpenPrinter(PChar(FName), @FHandle, nil) then
  {$ELSE}
  if OpenPrinter(PChar(FName), FHandle, nil) then
  {$ENDIF}


Добавлено спустя 56 секунд:
тобишь надо @hPrinter
sts
постоялец
 
Сообщения: 455
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Использование функции OpenPrinter

Сообщение ykirienko » 07.12.2015 08:33:01

Спасибо за совет sts получилось.
ykirienko
незнакомец
 
Сообщения: 2
Зарегистрирован: 02.12.2015 15:08:33


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 249

Рейтинг@Mail.ru