Классы TGraphic и TPicture

Абстрактный класс TGraphic является родительским для трех видов изображений, общепринятых в графике Windows: значка (класс TIcon), метафайла (класс TMetafile) и растровой картинки (класс TBitmap). Четвертым потомком TGraphic является класс TJPEGImage – инкапсулирующий сжатую растровую картинку в формате JPEG.

Общей особенностью потомков TGraphic является то, что обычно они сохраняются в файлах определенного формата. Пиктограммы представляют собой небольшие растровые изображения, снабженные специальными средствами, регулирующими их прозрачность. Метафайл – это изображение, построенное на графическом устройстве с помощью специальных команд. Растровые изображения – это произвольные графические изображения в файлах со стандартным расширением BMP.

Переменной типа TGraphic можно присваивать указатель на любой из перечисленных классов-потомков.

Классы TIcon и TMetafile умеют только отображать себя и не предназначены для рисования. Класс TBitmap имеет свою канву для рисования.

Метод Assign (Source : TPersistent) переопределяет одноименный метод предка, допуская полиморфное присваивание графических объектов.

Для класса TGraphic определены также методы LoadFromFile, SaveToFile, LoadFromClipboadFormat, SaveToClipboardFormat.

Событие OnProgress позволяет отражать время загрузки графических объектов, которое может быть значительным.

Высота и ширина графического объекта задаются свойствами Height и Width. Свойство Modified : Boolean показывает, модифицировался ли данный графический объект.

Класс TРicture инкапсулирует в себе все необходимое для работы с готовыми графическими изображениями. Предназначение класса – управлять вызовами соответствующих методов, скрывая при этом хлопоты с определением типа графического объекта.

Доступ к графическому объекту осуществляется посредством свойства Graphic : TGraphic, например Image1.Picture.Graphic := MyBitmap. Если графический объект имеет один из трех предопределенных типов, то к нему можно обратиться и как к одному из свойств: Bitmap : TBitmap, Icon : TIcon, Metafile : TMetafile.

Если в поле Graphic хранился объект одного класса, а затребован объект другого класса, то прежний объект уничтожается, а вместо него создается пустой объект требуемого класса. Например,

Image1.Picture.LoadFromFle(‘myicon.ico’);

MyBitmap := Image1.Picture.Bitmap;

 

Пример сохранения графического объекта в буфере информационного обмена Clipboard:

Procedure TForm.Buttin1Click(Sender : TObject);

Begin

Clipboard.Assign(Image1.Picture);

End;

Пример загрузки графического объекта из буфера обмена:

Procedure TForm.Buttin1Click(Sender : Tobject);

Begin

Image1.Picture.Assign(Clipboard);

End;

Передать свойство объекта TPicture Graphic как параметр методам канвы Draw( ) или StrechDraw ( ) для выведения картинки на канву можно следующим образом:

Procedure TForm.Buttin1Click(Sender : TObject);

Begin

Form1.Canvas.Draw(300,100,Image1.Picture.Graphic);

End;

Методы класса TРicture аналогичны методам TGraphic. В этих классах не существует объявленных методов рисования. Объяснение простое – в процессе рисования они играют пассивную роль; рисуют не они – рисуют их. Все рисование должно осуществляться через вызовы методов Draw и StretchDraw канвы.

Функции печати

Для обслуживания принтера создан специальный класс TРrinter, реализо­ванный в модуле Printers. Для того чтобы программа могла взаимодействовать с принтером, необходимо добавить модуль Printers в секцию Uses приложения.

Класс TРrinter инкапсулирует функции Windows по обслуживанию принтера.

Свойства:

Свойство Canvas представляет собой дисплейный контекст принтера, в который происходит вывод информации.

Свойство Orientation позволяет задать тип расположения информации на листе бумаги – горизонтально или вертикально (poLandscape, poPortrait).

Свойства PageHeight и PageWidth содержат размеры принтерной страницы в пикселях.

Свойство PageNumber содержит номер текущей принтерной страницы.

Свойство Printers содержит список всех описанных в системе принтеров, доступных Windows.

Свойство PrinterIndex указывает, какой из принтеров в списке, определяемом свойством Printers, является текущим выбранным принтером.

Свойство Printing имеет значение True до тех пор, пока продолжается процесс печати.

Свойство Title позволяет задать заголовок при печати.

 

Методы:

Abort аварийно завершает вывод на устройство печати.

BeginDoc посылает информацию на принтер.

EndDoc указывает на необходимость начала печати.

SetPrinter позволяет задать текущее устройство печати.

Для вывода информации на устройство печати сначала вызывается метод BeginDoc. Затем с помощью метода TextOut принтерного контекста (Canvas) выводится информация, ее непосредственная распечатка начинается после вызова метода EndDoc.

 

Begin

Printer.BeginDoc;

Printer.Canvas.TextOut(x, y, ‘ ‘);

Label1.Caption := ‘Печатаем страницу ‘ + IntToStr(Printer.PageNumber);

Printer.EndDoc;

End;

 

Для вывода текста в Delphi используются операторы Write и Writeln, как и в Турбо Паскале.

 

Пример вывода содержимого редактора Memo1:

Var Pr : TextFile; i : Integer;

Begin

AssignPrn (Pr);

Rewrite (Pr);

For i := 0 To Memo1.Lines.Count – 1 Do

Writeln(Pr, Memo1.Lines[i]);

CloseFile(Pr);

End;

 

Процедура AssignPrn из модуля Printers связывает текстовую файловую переменную с текущим принтером системы и создает в памяти буфер вывода. Оператор Rewrite открывает устройство вывода. Процедура Writeln осуществляет печать строки и переводит позицию печати на новую строку.

Для печати растрового изображения необходимо представить его в приложении в виде экземпляра класса TGraphic или его наследника. Проще всего использовать в приложении компонент TImage или созданный самостоятельно объект типа TPicture. Затем изображение передается на канву принтера при помощи стандартных методов, и класс TPrinter обеспечивает его печать.

 

Begin

With Printer Do

Begin

BeginDoc;

Canvas.Draw (0, 0, Image1);

EndDoc;

End;

End;

Другие возможности Delphi

Delphi – сложная среда программирования, которую нельзя изучить за один вечер, поскольку она содержит множество различных элементов.

Delphi является средой разработки, используемой прежде всего для поддержки и разработки приложений, предназначенных как для отдельных рабочих станций, так и для серверов. Delphi может функционировать под управлением операционной системы Windows 95, Windows 98 или Windows NT.

Большинство созданных с помощью Delphi приложений направлены главным образом на решение задач, связанных с производством и бизнесом. Обеспечение функционирования баз данных и создание отчетов – наиболее часто решаемые задачи.

При работе в среде Delphi посредством BDE (Borland Database Engine) можно получать прямой доступ к dBASE-, Paradox-, FoxPro-, Access- и ASCII-таблицам баз данных. Набор драйверов Borland SQL Links for Windows обеспечивает все необходимые соединения с SQL-серверами.

С Delphi поставляется СУБД InterBase, которая обычно используется для тестирования приложений, разрабатываемых для работы с удаленными SQL-серверами Oracle, Sybase, Informix, InterBase NT и DB2. Для того чтобы получить доступ к другим базам данных или другим форматам данных посредством BDE, нужно воспользоваться ODBC-драйвером. Таким образом, Delphi можно использовать при создании приложений типа клиент/сервер любого масштаба.

Для создания отчетов Delphi содержит набор интегрированных компонентов TQuickReport.

Для программирования непосредственного доступа к аппаратному обеспечению Delphi предоставляет в распоряжение программиста интегрированный ассемблер. Благодаря этому lntel-Assembler-код может непосредственно включаться в код программ Object Pascal. Интегрированный ассемблер в значительной степени использует синтаксис, поддерживаемый компиляторами Borland Turbo Assembler и Macro Assembler фирмы Microsoft. Интегрированный ассемблер Delphi представляет собой разновидность ассемблер-компилятора, использующего синтаксис языка Object Pascal.

Delphi предоставляет возможности для разработки собственных компонентов.

Современный рынок программных продуктов предоставляет широкий выбор готовых к работе компонентов, имеющих самое разнообразное применение.



Классификация ЭВМ