Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Форматы бумаги

Пользователь приходит и говорит программисту:
- Мне информацию в электронном виде надо. Ну, на дискете чтоб.
- А в каком формате?
- Как в каком? Ясно в каком - в A4.

Вот пример, выводящий список форматов бумаги для принтера, установленного по умолчанию:


 procedure TForm1.Button2Click(Sender: TObject);
 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);
       memo1.clear;
       for i := 1 to numPaperformats do
         memo1.lines.add(pPaperformats^[i]);
     finally
       FreeMem(pPaperformats);
     end;
   end;
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS