Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Система \ Принтеры и Печать \ Как узнать все форматы бумаги, поддерживаемые принтером по умолчанию

Как узнать все форматы бумаги, поддерживаемые принтером по умолчанию

Ниже представлена процедура, которая имеет в качестве параметра любой объект StringList - Строки для Memo, Пункты Combo и т.д.

procedure GetPaperFormats(aSL: TStringList);
type
  TPaperName = array[0..63] of Char;
  TPaperNameArray = array[1..High(Cardinal) div
    Sizeof(TPaperName)] of
    TPaperName;
  PPapernameArray = ^TPaperNameArray;
var
  Device, Driver, Port: array[0..255] of Char;
  hDevMode: THandle;
  i, numPaperformats: Integer;
  pPaperFormats: PPapernameArray;
begin
  Printer.PrinterIndex := -1;
  Printer.GetPrinter(Device, Driver, Port, hDevmode);
  numPaperformats :=
    WinSpool.DeviceCapabilities(
    Device, Port, DC_PAPERNAMES, nil, nil);
  if numPaperformats > 0 then
  begin
    GetMem(pPaperformats,
      numPaperformats *
      Sizeof(TPapername));
    try
      WinSpool.DeviceCapabilities
        (Device, Port, DC_PAPERNAMES,
        Pchar(pPaperFormats), nil);
      aSL.clear;
      for i := 1 to numPaperformats do
        aSL.lines.add(pPaperformats^[i]);
    finally
      FreeMem(pPaperformats);
    end;
  end;
end;

Использование:

GetPaperFormats(Memo1.Lines);

Название: Как узнать все форматы бумаги, поддерживаемые принтером по умолчанию
Дата публикации: 2004-09-09 (2436 Прочтено)

 
 

 

Page generation 0.034 seconds