Виртуальная библиотека Delphi (fb2) читать постранично, страница - 3
- Виртуальная библиотека Delphi 1.01 Мб, 268с. скачать: (fb2) - (исправленную) читать: (полностью) - (постранично) - Автор неизвестен
[Настройки текста] [Cбросить фильтры]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (92) »
Application.Initialize;
if UpperCase(ExtractFileName(Application.ExeName))='SETUP.EXE' then Application.CreateForm(TSetupForm, SetupForm) // форма инсталлятора
else Application.CreateForm(TMainForm, MainForm); // форма основной программы
Application.Run;
METODS AssignPrn(f:TextFile) — Связать текстовый файл с принтером. Далее вывод информации в этот файл приводит к ее печати. Удобно в простейших случаях. Abort — Сбросить печать BeginDoc — Начать печать NewPage — Начать новую страницу EndDoc — Завершить печать.
Пример : Procedure TForm1.Button1Click(Sender: TObject); Begin With Printer do Begin BeginDoc; { Начало печати } Canvas.Font:=label1.font; { Задали шрифт } Canvas.TextOut(100,100,'Это тест принтера !!!'); { Печатаем текст } EndDoc; { Конец печати } end; end;
Рисую две иконки 32х32 и 16х16, но под NT 32х32 не показывается!
С помощью Image Editor из комплекта Delphi3 создаю ресурс содержащий иконки и добавляю его в свой проект. Как известно, одна иконка в ресурсе может иметь два вида 32×32 и 16×16, которые отображаются соответственно при выборе крупных и мелких значков. Я создаю оба изображения, но после компиляции отображается только 16×16 (при крупных значках оно растягивается). Как мне сделать так, чтобы отображались обе иконки? 1. Такая штука работает только под Win 95-98, а в NT вторая икона не учитывается 2. Для редактирования подобных иконок лучше использовать либо Borlad Resourse Workshop или Visual C++ (для иконок годится но для всего остального, извините!)Работа с принтером.
Delphi имеет стандартный объект для доступа к принтеру — TPRINTER, находящийся в модуле PRINTERS. В этом модуле имеется переменная Printer:Tpinter, что избавляет от необходимости описывать свою. Он позволяет выводить данные на печать и управлять процессом печати. Правда, в некоторых версиях Delphi 1 он имеет "глюк" — не работают функции Draw и StrethDraw. Но эта проблема поправима - можно использовать функции API. Далее приведены основные поля и методы объекта Printers: PROPERTY Aborted:boolean — Показывает, что процесс печати прерван Canvas:Tcanvas — Стандартный Canvas, как у любого графического объекта. Он позволяет рисовать на листе бумаге графику, выводить текст… Тут есть несколько особенностей, они описаны после описания объекта. Fonts:Tstrings — Возвращает список шрифтов, поддерживаемых принтером Handle:HDS — Получить Handle на принтер для использования функций API (см. Далее) Orientation:TprinterOrientation — Ориентация листа при печати : (poPortrait, poLandscape) PageHeight:integer — Высота листа в пикселах PageNumber:integer — Номер страницы, увеличивается на 1 при каждом NewPage PageWidth:integer — Ширина листа в пикселах PrinterIndex:integer — Номер используемого принтера по списку доступных принтеров Printers Printers:Tstrings — Список доступных принтеров Printing:boolean — Флаг, показывающий, что сейчас идет процесс печати Title:string — Имя документа или приложения. Под этим именем задание на печать регистрируется в диспетчере печатиMETODS AssignPrn(f:TextFile) — Связать текстовый файл с принтером. Далее вывод информации в этот файл приводит к ее печати. Удобно в простейших случаях. Abort — Сбросить печать BeginDoc — Начать печать NewPage — Начать новую страницу EndDoc — Завершить печать.
Пример : Procedure TForm1.Button1Click(Sender: TObject); Begin With Printer do Begin BeginDoc; { Начало печати } Canvas.Font:=label1.font; { Задали шрифт } Canvas.TextOut(100,100,'Это тест принтера !!!'); { Печатаем текст } EndDoc; { Конец печати } end; end;
Особенности работы с TPrinter
1. После команды BeginDoc шрифт у Canvas принтера сбрасывается и его необходимо задавать заново 2. Все координаты даны в пикселах, а для нормальной работы необходимы миллиметры (по двум очевидным причинам: очень трудно произвести разметку страницы в пикселах (особенно если необходима точность), и, главное, при изменении разрешающей способности принтера будет изменяться число точек на дюйм, и все координаты "поедут". 3. У TPrinter информация о принтере, по видимому, определяются один раз — в момент запуска программы (или смены принтера). Поэтому изменение настроек принтера в процессе работы программы может привести к некорректной работе, например, неправильной печать шрифтов True Type.Определение параметров принтера через API
Для определения информации о принтере (плоттере, экране) необходимо знать Handle этого принтера, а его можно узнать объекта TPrinter — Printer.Handle. Далее вызывается функция API (unit WinProcs) : GetDevice(Handle:HDC; Index:integer):integer; Index – код параметра, который необходимо вернуть. Для Index существует ряд констант: DriverVersion — вернуть версию драйвера Texnology — Технология вывода, их много, основные dt_Plotter — плоттер dt_RasPrinter — растровый принтер dt_Display — дисплей HorzSize — Горизонтальный размер листа (в мм) VertSize — Вертикальный размер листа (в мм) HorzRes — Горизонтальный размер листа (в пикселах) VertRes — Вертикальный размер листа (в пикселах) LogPixelX — Разрешение по оси Х в dpi (пиксел /дюйм) LogPixelY - Разрешение по оси Y в dpi (пиксел /дюйм) Кроме перечисленных еще около сотни, они позволяют узнать о принтере практически все. Параметры, возвращаемые по LogPixelX и LogPixelY очень важны — они позволяют произвести пересчет координат из миллиметров в пиксели для текущего разрешения принтера. Пример таких функций: Procedure TForm1.GetPrinterInfo; { Получить информацию о принтере } begin PixelsX:=GetDeviceCaps(printer.Handle,LogPixelsX); PixelsY:=GetDeviceCaps(printer.Handle,LogPixelsY); end; Function TForm1.PrinterCoordX(x:integer):integer; {- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (92) »
Последние комментарии
1 день 8 часов назад
1 день 8 часов назад
1 день 9 часов назад
1 день 20 часов назад
1 день 21 часов назад
1 день 21 часов назад