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.


 

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

82332. Состояние жизненного уровня трудящихся в 50-е гг. События в Темиртау (1958г.) 35.21 KB
  События в Темиртау 1958г. Особенно крупный взрыв недовольства произошел летом 1959 года в городе Темиртау. Строящийся в Темиртау металлургический комбинат был объявлен ударной комсомольской стройкой и до конца 1958 года в область прибыли 132 тыс. например из двух тысяч болгар трудившихся в Казахстане свыше половины работали в Темиртау.
82333. Политика Тауке хана. «Жеты Жаргы» – свод норм обычного права казахского народа 34.49 KB
  Изменения политической структуры вызвали настоятельную необходимость переработки и правовой базы организации казахского общества. и включал в себя следующие основные разделы: земельное право; семейнобрачные отношения; военная организация; суд и судебный процесс; виды наказаний по уголовным преступлениям; введение куна выкуп; наследственное право. Первое место в нем занимает закон возмездия: за кровь мстить кровью за увечье увечьем; За воровство грабеж насилие прелюбодеяние казнить смертью; По сим постановлениям родственники...
82334. Изменение в социальной структуре и численности населения в начале 50-х-сер.60-х годов 29.09 KB
  Доля рабочих среди трудоспособного населения была невелика. По официальным данным на 1940 год доля рабочих в Казахстане было 634 тысячи колхозников 912 тысяч. Проблема нехватки рабочих рук была решена за счет приезжих которые составляли 80 от общего числа рабочих. В 1960 году численность рабочих составляла 22 млн человек колхозников 611 тысяч.
82335. Освободительная борьба казахского народа против джунгарских завоевателей (Ордабасы, Анракай, годы «великого бедствия») 33.09 KB
  Еще более усилилась агрессия джунгар после создания ими государства. Джунгарское ханство занимавшее территорию между Китаем и Казахстаном было образовано в 1640 году. В 1204 году ойраты как сами назвали себя джунгары вошли в состав государства Чингисхана.
82336. Казахстан и мировое сообщество в конце 50-х-сер.60-х годов 29.45 KB
  В СССР 12 марта 1951 года принят закон о защите мира пропаганда войны объявлялась тягчайшим преступлением против человечества. Осенью 1959 года состоялись переговоры глав правительств СССР и США. Расширился между СССР и КНР культурный и торговый обмен. Тысячи китайцев получали высшее образование в СССР в том числе в вузах Казахстана.
82337. Хан Абылай и его место в истории казахского народа 28.98 KB
  Его дед тоже Абылай был владетелем города Туркестана прославился воинскими доблестями и получил грозное прозвище Канишер кровопийца. В 13 лет Абылай лишился отца убитого во время междоусобиц рано поступил на службу. Абылай понимал что главный враг Казахстана джунгары поэтому стремится держать пророссийскую ориентацию.
82338. Казахстан в середине 60-х нач. 80-х годов. Социально-политическое развитие 30.01 KB
  Состав депутатов Верховного Совета СССР где были представлены чабаны колхозники рабочие промышленных предприятий техническая интеллигенция люди науки и искусства партийные и хозяйственные руководители и служил якобы подтверждением этой новой общественнополитической ситуации в обществе. Группа деятелей высшего политического руководства СССР в глубокой тайне подготовила смещение Н. Суслов и председатель КГБ СССР В. Смена политического руководства СССР в октябре 1964 года вскоре стала сказываться и на состоянии культуры.
82339. Восстание Кенесары Касымова (причины, характер, движущие силы, итоги) 27.95 KB
  Движущие силы численность: все слои населения крестьянешаруа бии батыры султаны 20 тысяч человек все слои населения крестьянешаруа бии батыры султаны Ход восстания: осень 1837 организация отрядов повстанцев; начало открытого сопротивления царскому правительству; весналето 1838 вооруженные столкновения с царскими отрядами нападение на аулы ненавистных султанов; разгром Акмолинской крепости отрядом Кенесары; увеличение отрядов перемещение центра восстания из Среднего в Младший жуз; 1840 вторжение Кенесары в Кокандское...
82340. Экономическое развитие Казахстана в 60-ые годы ХХ. Рост новых городов 32.27 KB
  Такой подход положительно сказался на тонусе общественной жизни Казахстана. Удельный вес Казахстана в общесоюзной добыче железной руды достиг 54 . На территории Казахстана были размещены космодром и атомный полигон.