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.


 

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

22295. ИЗ ИСТОРИИ ПСИХОЛОГИЧЕСКОЙ ДИАГНОСТИКИ 140.5 KB
  Появление тестовых методов принято связывать с бихевиоризмом. Именно этим занимались первые психодиагносты разработавшие метод тестов термин введен Ф. В своей статье Интеллектуальные тесты и измерения 1890 год журнал Mind Мысль Кеттелл писал о том что применение серии тестов к большому числу индивидов позволит открыть закономерности психических процессов и тем самым приведет к преобразованию психологии в точную науку. Вместе с тем он высказал мысль о том что научная и практическая ценность тестов возрастет если условия...
22296. КЛАССИФИКАЦИЯ ПСИХОДИАГНОСТИЧЕСКИХ МЕТОДИК 125 KB
  К формализованным методикам относятся тесты опросники методики проективной техники и психофизиологические методики. Методики высокого уровня формализации Как уже говорилось выше они включают в себя четыре главных класса методик: тесты которые в свою очередь делятся на несколько подклассов опросники методики проективной техники и психофизиологические методики. Однако по своей психологической сущности тесты и например опросники очень несходны между собой. Тесты Тесты в переводе с английского испытание проверка проба ...
22297. ТРЕБОВАНИЯ К ПОСТРОЕНИЮ И ПРОВЕРКЕ МЕТОДИК 135.5 KB
  Обычно авторы методики в руководстве приводят точные и подробные указания по процедуре ее проведения. Формулирование таких указаний составляет основную часть стандартизации новой методики т. Другим наиболее важным этапом в стандартизации методики является выбор критерия по которому следует проводить сравнение результатов диагностических испытаний поскольку диагностические методики не имеют заранее определенных стандартов успешности или неудачи в их выполнении. В общих чертах стандартизация диагностической методики ориентированной на...
22298. Организация санитарно-противоэпидемических мероприятий в чрезвычайных ситуациях 181 KB
  Ознакомить студентов с организационной структурой и задачами санитарно-эпидемиологической службы, основами организации и порядком проведения противоэпидемических мероприятий в чрезвычайных ситуациях мирного и военного времени
22299. ОРГАНИЗАЦИЯ ОКАЗАНИЯ КВАЛИФИЦИРОВАННОЙ И СПЕЦИАЛИЗИРОВАННОЙ МЕДИЦИНСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В ВОЕННОЕ ВРЕМЯ 160.5 KB
  Изучить организацию лечебно-эвакуационного обеспечения населения в очагах массовых санитарных потерь при применении противником ОМП. Рассмотреть организацию оказания квалифицированной и специализированной медицинской помощи пострадавшим. Изучить организацию работы второго этапа медицинской эвакуации
22300. Медицинское снабжение формирований и учреждений, предназначенных для медико-санитарного обеспечения населения в ЧС 240 KB
  Изучить организацию медицинского снабжения формирований и учреждений СМК, ГОЗ в мирное время и в режиме работы в ЧС. Рассмотреть вопросы классификации медицинского имущества, его нормирования и защиты от воздействия поражающих факторов ЧС.
22301. Работа с элементами списка 1.26 MB
  Затем новый элемент списка заполняется информацией: NOV^ := DAT;. Для поиска места подключения нового элемента надо просмотреть все элементы списка от его начала до элемента имеющего NZ = KEY или до конца списка. Продвижение вдоль списка от его начала к его концу осуществляется с помощью двух указателей: CUR и PR.
22302. ОРГАНИЗАЦИЯ САНИТАРНО-ГИГИЕНИЧЕСКИХ И ПРОТИВОЭПИДЕМИЧЕСКИХ МЕРОПРИЯТИЙ СРЕДИ НАСЕЛЕНИЯ В ВОЕННОЕ ВРЕМЯ 238 KB
  Изучить организацию проведения санитарно-гигиенических и противоэпидемических мероприятий в очагах боевых действий и ЧС мирного времени, методику оценки санитарно-эпидемиологического состояния территории. Методику расчета возможных санитарных потерь. Изучить организацию проведения санитарной экспертизы продовольствия и воды.
22303. Медицинская служба Вооруженных Сил Российской Федерации в чрезвычайных ситуациях мирного времени 196 KB
  Ознакомить с задачами военной медицины в Единой государственной системе предупреждения и ликвидации последствий чрезвычайных ситуаций в мирное время. Изучить задачи, предназначение, организационную структуру и порядок использования медицинских формирований Министерства обороны РФ при ликвидации последствий чрезвычайных ситуаций мирного времени.