Переинициализация принтеров

отредактировано 08:54 Раздел: FastReport 3.0
Есть ли возможность програмно заставить переинициализироватся принтеры ?
Например после добавления сетевого принтера FR его не видит до перезагрузки модуля я.

Комментарии

  • отредактировано 08:54
    uses frxPrinter;
    frxPrinters.FillPrinters;
  • отредактировано 08:54
    Спасибо
  • отредактировано 08:54
    При такой переинициализации слетает DefaultPrinter

    Я делал так: (код писался ещё для 3.10 поэтому есть лишнее)
      procedure ReInitPrinters;
      var
        I: Integer;
        OldPrinterName: String;
      begin
        with FPrinters do begin
          if FPrinters.Count > 0 then
            OldPrinterName := Printer.Name
          else
            OldPrinterName := '';
          FPrinters.Clear;
          for I := Pred(FPrinterList.Count) downto 0 do begin
            TObject(FPrinterList.Items[I]).Free;
            FPrinterList.Delete(I);
          end;
          FillPrinters;
          FHasPhysicalPrinters := FPrinterList.Count > 0;
          if not FHasPhysicalPrinters then begin
            FPrinterList.Add(TfrxVirtualPrinter.Create(frxResources.Get('prVirtual'), ''));
            PrinterIndex := 0;
          end else begin 
            I := IndexOf(OldPrinterName);
            if I < 0 then
              PrinterIndex := IndexOf(GetDefaultPrinter)
            else
              PrinterIndex := I;
          end;
        end;
      end;
    

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.