Как найти все форматы бумаги, поддерживаемые принтеромDelphi , ОС и Железо , Принтеры и ПечатьАвтор: http://www.swissdelphicenter.ch uses Printers, WinSpool; procedure GetPapernames(sl: TStrings); type TPaperName = array[0..63] of Char; TPaperNameArray = array[1..High(Word) 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; // Standard printer 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); sl.Clear; for i := 1 to numPaperformats do sl.Add(pPaperformats^[i]); finally FreeMem(pPaperformats); end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin GetPapernames(memo1.Lines); end; Перевод кода на русский язык: Процедура GetPapernames
Это процедура принимает параметр Продолжение:
1. Устанавливает свойство Процедура Button1Click
Это обработчик события клика кнопки на форме ( Предложения по улучшению кода Вот несколько предложений для улучшения кода:
В целом, этот код хорошо структурирован и легко понятен. С некоторыми минимальными улучшениями он может стать еще более robust и maintainable. Статья рассказывает о том, как использовать программистский код на языке Delphi для обнаружения и вывода списка форматов бумаги, поддерживаемых принтером. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Принтеры и Печать ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |