77979

Графические файлы в Delphi

Лекция

Информатика, кибернетика и программирование

У ряда объектов из библиотеки библиотеки визуальных компонент есть свойство Cnvs канва которое предоставляет простой путь для рисования на них. Cnvs является в свою очередь объектом объединяющим в себе поле для рисования карандаш Pen кисть Brush и шрифт Font. Cnvs обладает также рядом графических методов: Drw TextOut rc Rectngle и др. Используя Cnvs вы можете воспроизводить на форме любые графические объекты – картинки многоугольники текст и т.

Русский

2015-02-05

63 KB

4 чел.

Графические файлы в Delphi

В стандартную библиотеку визуальных компонент Delphi входти несколько объектов6 с помощью которых работать с графическами объектами : рисунками, фигурами – TImage, TShape, TBevel.

Timage (на странице Additional)зволяет поместить графическое изображение в любое место на форме.

Рисунок можно загрузить во время дизайна в редакторе свойства Picture (Инспектор Объектов). Картинка должна храниться в файле в формате BMP (bitmap), WMF (Windows Meta File) или  ICO (icon).

Для включения в программу изображений в форматах PCX, GIF, TIFF JPEG нужно либо перевести их в формат  BMP.

При проектировании следует помнить, что изображение, помещенное на форму во время дизайна, включается в файл. DPR и затем прикомпилируется к EXE файлу. Поэтому такой EXE файл может получиться достаточно большой. Как альтернативу можно рассмотреть загрузку картинки во время выполнения программы, для этого у свойства Picture (которые является объектом со своим набором своиств и методов) есть специальный метод LoadFromFile.

Пример:

 If OpenDialog.Execute then

Image.Picture.LoadFromFile(OpenDialog.FileName);

 Важными являются свойства объекта Center и Stretch – оба имеют булевский тип. Если Center установлено в True, то центр изображения будет совмещаться с центром объекта TImage. Если Stretch установлено в True, то изображение будет сжиматься или растягиваеться таким образом, чтобы запролнить весь объект TImage.

 TShape (на странице Additional) – простейшие графические объекты на форме типк круг, квадрат и т.п.

Компонент рисует одну из простейших геометрических фигур, определяемых следующим множеством :

 Type TShapeType = (stRectangle, setSquare, stRoundRest, stRoundSquare, ustEllipse, stCircle) ;

 (прямоугольник, квадрат, скругленный прямоугольник, скругленный квадрат, эллипс, окружность) (рис40).

Рис 40 – Графические объекты компоненты TShape

Фигура полностью эанимает все пространство компонента. Если задан квадрат или круг, а размеры элемента по горизонтали и вертикали отличаются, фигура чертится с размером меньшего измерения.

Вид объекта указывается в свойстве Shape. Свойство Pen определяет цвет и вид границы объекта. Brush задает цвет и вид заполнения объекта. Эти свойства можно менять как во время дизайна, так и во время выполнения программы.

TBevel – объект для украшения программы, может принимать вид рамки или линии. Объект предоставляет  меньше вожможностей по сравнению с TPanel, но не занимает ресурсов. Внешний вид указывается с помощью свойств Shape и Style.

У ряда объектов из библиотеки библиотеки визуальных компонент есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты – TBitmap, TComboBox, TDBGrid, TDBListBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutLine, TPaintBox, TPrinter, TStringGrid. Canvas является в свою очередь объектом, объединяющим в себе поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font). Canvas обладает также рядом графических методов : Draw, TextOut, Arc, Rectangle и др. Используя  Canvas, вы можете воспроизводить на форме любые графические объекты – картинки, многоугольники, текст и т.п. без использования компонент TImage, TShape и TLabel  (т.е. без использоания дополнительных ресурсов), однако при этом Вы должны обрабатывать событие OnPaint того объекта, на канве которого Вы рисуете. Рассмотрим подробнее свойства и методы объекта Canvas.

Свойства Canvas :

  1.  Brush – кисть, является объектом со своим набором свойств :
  2.  Bitmap – картинка размером строго 8х8, используется для заполнения (заливки) области на экране.
  3.  Color – цвет заливки.
  4.  Style – предопредленный стиль заливки; это свойство конкурирует со свойством Bitmap – какое свойство Вы определели последним, то и будет определьять вид заливки.
  5.  Font – шрифт, которым выводится текст (метод TextOut).
  6.  Pen – карандаш, определяет вид линий; как и кисть (Brush) является объектом с набором свойств:  
  7.  Color – цвет линии
  8.  Style – стиль вывода : линия, пунктир и др.
  9.  Width – ширина линии в точках
  10.  Pixels – двухмерный массив элементов изображения (pixel), с его помощью вы получаете доступ к каждой отдельной точке изображения (см. пример к данному уроку).

Методы Canvas :

Методы для рисования простейшей графики – Arc, Chord, LineTo, Pie, Polygon, PolyLine, Rectangle, RoudRest. При прорисовке линий в этих методах используются карандаш (Pen) канвы, а для заполнения внутренних оьластей – кисть (Brush).

Методы для вывода картинок на канву – Draw и StretchDraw, в качестве параметров указываются прямоугольник и графический объект для вывода (это может быть TBitmap, TIcon или TMetaFile). StretchDraw отличается тем, что растягивает или сжимает картинку так, чтобы она заполнила весь указанный прямоугольник (см. пример к данному уроку).

Методы для вывода текста – TextOut и TextRect. При выводе текста используется шрифт (Font)  канвы. Пи использовании TextRect текст выводится только внутри указанного прямоугольника. Длину и высоту текта можно узнать с помощью функций TextWidth и TextHeight.

Пример1 : Нарисовать график функции y=sin x

  1.  Разместить компоненту Image (рис. 41).
  2.  Кнопка (Button1) свойтсво Сaption = «Нарисовать».
  3.  В обработчик событий OnClick кнопки записать :

Рис 41- пример использования компоненты TImage

procedure TForm1.Button1Click(Sender: TObject);

var x, y : real; PX, PY : LongInt;

begin

for PX:=0 to image1. width do

begin

X:=PX*4*Pi/image1.Width;

Y:=sin(x);

PY:=Trunc(Image1.Height-(Y+1)*Image1.Height/2);

image1.Canvas.Pixels[PX,PY]:=0;

end;

end;

end.


 

А также другие работы, которые могут Вас заинтересовать

15832. ERP (ENTERPRISE RESOURCE PLANNING) 53.5 KB
  ERP Enterprise Resource Planning Содержание 1. Определения ERP и ERPрешения2. История возникновения ERP3. Основные функции ERPсистемы4. Внедрения ERPрешений5. Достоинства ERPрешений6. Недостатки ERPрешений7. Аналитика рынка ERPрешений в России и странах СНГ8. Заключение 1. Определен...
15833. Внедрение ERP-систем. Основные ошибки 53 KB
  Внедрение ERPсистем. Основные ошибки Информационные системы планирования ресурсов предприятия Enterprise Resource Planning ERP превратились в привычный инструмент крупного и среднего бизнеса. Их основная задача автоматизация бизнеспроцессов компании производства снабжения сб...
15834. Выбор ПО для автоматизации управления 97.5 KB
  Выбор ПО для автоматизации управления Вступление Современная жизнь состоит из альтернатив. Мы постоянно чтото выбираем. Это относится и к нашему быту и к профессиональной деятельности. В простых ситуациях мы даже не задумываемся что выбрать и как это сделать в сложн...
15835. Корпоративные информационные системы: не повторяйте пройденных ошибок 114 KB
  Корпоративные информационные системы: не повторяйте пройденных ошибок Что такое информационная система В течение последних лет значительная часть дискуссий касающихся развития корпоративного менеджмента протекает в ракурсе практического применения современных ...
15836. Основы систем класса MRP-MRPII 119.5 KB
  Основы систем класса MRPMRPII Геннадий Верников Философия и основные понятия MRP В начале 60х годов в связи с ростом популярности вычислительных систем возникла идея использовать их возможности для планирования деятельности предприятия в том числе для планирования прои...
15837. Семь принципов успешной автоматизации 49.5 KB
  Семь принципов успешной автоматизации Согласно мировой статистике только треть проектов разработки и внедрения информационных систем завершаются успехом. Об аналогичных исследованиях в России ничего не известно но представляется что у нас дела обстоят еще хуже. У...
15838. Дети с социально-педагогической запущенностью 44 KB
  ДОКЛАД на тему: Дети с социальнопедагогической запущенностью. Общеизвестно что кризисные состояния экономического и политического положения в стране в первую очередь отражается на наименее социально защищённом контингенте на детях. Увеличение количества детей
15839. Пути преодоления речевого недоразвития, возникшего в результате социально-педагогической запущенности, у детей младшего школьного возраста 47.5 KB
  Пути преодоления речевого недоразвития возникшего в результате социальнопедагогической запущенности у детей младшего школьного возраста Государственное бюджетное образовательное учреждение для детей нуждающихся в психологопедагогической и медикосоциальной по...
15840. Пути профилактики и коррекции социально-педагогической запущенности 29 KB
  Пути профилактики и коррекции социальнопедагогической запущенности Современная социальная ситуация сопровождается увеличением количества детей с девиантным поведением. Особое место занимает группа детей с выраженной социальнопедагогической запущенностью ко...