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.


 

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

24963. Договор аренды 57 KB
  Договор аренды По договору аренды имущественного найма арендодатель обязуется предоставить арендатору имущество за плату во временное владение и пользование или во временное пользование. Договор аренды консенсуальный возмездный взаимный и двусторонний. В настоящее время объектами аренды могут быть земельные участки и участки лесного фонда. Единственным существенным условием договора аренды в силу требования закона является условие о предмете аренды.
24964. Договор аренды транспортных средств 43 KB
  Договор аренды транспортных средств Выделение договора аренды транспортного средства в качестве отдельного вида договора аренды продиктовано особенностями его предмета транспортного средства. По второму признаку аренда конной повозки с неизбежностью будет отнесена к аренде движимой вещи но не к аренде транспортного средства. Закон регламентирует две разновидности договора аренды транспортного средства: 1 аренда транспортного средства с предоставлением услуг по управлению и технической эксплуатации; 2 аренда транспортного средства без...
24965. Аренда недвижимости 56 KB
  По договору аренды предприятия в целом как имущественного комплекса используемого для осуществления предпринимательской деятельности арендодатель обязуется предоставить арендатору за плату во временное владение и пользование земельные участки здания сооружения оборудование и другие входящие в состав предприятия основные средства передать в порядке на условиях и в пределах определяемых договором запасы сырья топлива материалов и иные оборотные средства права пользования землей водой и другими природными ресурсами зданиями...
24966. Договор строительного подряда. Понятие и предмет договора 70.5 KB
  Договор строительного подряда. По договору строительного подряда одна сторона подрядчик обязуется в установленный договором срок построить по заданию заказчика определенный объект либо выполнить иные строительные работы а другая сторона заказчик обязуется создать подрядчику необходимые условия для выполнения работ принять их результат и уплатить обусловленную цену п. основной отличительный признак договора строительного подряда – характер работ и особая область в которой они осуществляются. Следовательно выполнение монтажных работ...
24967. Сравнительная характеристика договоров поручения, комиссии и агентского договора. Значение этих договоров 55.5 KB
  Сравнительная характеристика договоров поручения комиссии и агентского договора.971 ГК – легальное определение дра поручения. и фактических действий; 2 длящийся харр; 3 агент действует либо от своего имени и за счет принципала модель отношений дра комиссии либо от имени и за счет принципала модель отношений дра поручения но при этом агентский договор никогда не носит личнодоверительного характера. деятти хотя бы одним из его учв – поручение всегда возмездно если только в самом дре не предусмотрено иное; 3 отношения учв...
24968. Государственный контракт на выполнение подрядных работ для государственных нужд 54.5 KB
  Заказчик уполномоченный орган вправе размещать заказ путем проведения закрытого конкурса аукциона исключительно в случае размещения заказа на поставку товаров выполнение работ оказание услуг сведения о которых составляют государственную тайну. При этом создание комиссии по размещению заказа определение начальной цены контракта предмета и его существенных условий утверждение проекта контракта конкурсной документации документации об аукционе определение условий торгов и их изменение осуществляются заказчиком уполномоченным органом а...
24969. Договор займа и кредитный договор 36 KB
  Договор займа и кредитный договор 1. Понятие Договор займа кредитный договор и договор факторинга оформляют единые экономические кредитные отношения. По договору займа одна сторона заимодавец передает в собственность другой стороне заемщику деньги или другие вещи определенные родовыми признаками а заемщик обязуется возвратить заимодавцу такую же сумму денег сумму займа или равное количество других полученных им вещей того же рода и качества абз. Эта сделка: односторонняя заемщик обязан возвратить сумму займа а займодавец имеет...
24970. Кредитный договор 50.5 KB
  Именно поэтому закон говорит о предоставлении кредита в виде денежных средств п. Вознаграждение кредитору определяется в виде процентов начисленных на сумму кредита за все время его фактического использования. Обязанности заемщика состоят в возврате полученного кредита и уплате предусмотренных договором или законом процентов за его использование. Законом определяется момент исполнения заемщиком обязанности по возврату суммы кредита п.
24971. Договор лизинга (понятие, содержание, виды) 47.5 KB
  Договор лизинга понятие содержание виды Понятие признаки содержание. Договор лизинга является двусторонним взаимным консенсуальным возмездным. Лизингодатель не имеет прямой заинтересованности в конкретном имуществе являющемся предметом лизинга. Главной обязанностью лизингодателя по договору лизинга является финансирование покупки предмета лизинга и получение прибыли на вложенные деньги.