КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Графические коллекции. Создание панелей инструментов
Приведем правила создания панелей инструментов проектов с использованием элементов ToolBar и imageList. Компонент imageList служит для создания коллекций рисунков – иконок, которые потом применяются для установки на другие компоненты. Установим на форме компоненты Toolbar1 и ImageList1. Для установки кнопок на компонент toolBar1 достаточно выделить его и вызвать контекстное меню. Для добавления кнопок в контекстном меню выбираем пункт New Button, а для разделения группы кнопок – New Separator. Для добавленной кнопки рисунок автоматически выберется из компонента Imagelist1, если для панели инструментов через свойство images выбран Imagelist1. На одной форме можно установить как несколько панелей инструментов, так и несколько коллекций графики imageList. Приведем алгоритм создания панели (панелей) инструментов с графическими изображениями. 1. Установить на форме элемент ImageList и собрать в нем рисунки для кнопок(см. рис.62.) Рис.62. Кнопка E x port позволяет сохранить в виде графических файлов коллекции созданных коллекций изображений для кнопок, что позволяет многократное их использование в других проектах. 2. Устанавливаем на форме компонент Toolbar и связываем его с объектом imagelist1. После этого устанавливаем кнопки через контекстное меню (см. рис.63.). Рис.63.
3. Программирование кнопок панели инструментов. Теперь остановимся на таблицах для коллекций цветов. В закладке Samples имеется таблица ColorGrid. Мы с вами рассмотрели использование диалога ColorDialog для выбора палитры цветов. При выборе цвета в текстовом процессоре MsWord мы встречались с вами с таблицей цветов для установки цвета символов. Рассматриваемая нами таблица цветов аналогична таблице цветов офисных программ. Приведем отличительные свойства этого компонента. Таблица 2.19.
Рассмотрим пример. Установим на форме элемент Сolordialog1 и 16 элементов Shape. Установим значение свойства GridOrdering равным Go1x16. Приведем код модуля. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, ImgList, ColorGrd, ExtCtrls, Grids, StdCtrls, Buttons; type TForm1 = class(TForm) ColorGrid1: TColorGrid; Shape1: TShape; Shape2: TShape; Shape3: TShape; Shape4: TShape; Shape5: TShape; Shape6: TShape; Shape7: TShape; Shape8: TShape; Shape9: TShape; Shape10: TShape; Shape11: TShape; Shape12: TShape; Shape13: TShape; Shape14: TShape; Shape15: TShape; Shape16: TShape; procedure ColorGrid1Change(Sender: TObject); private {Private declarations } public {Public declarations } end; var Form1: TForm1; i:byte; implementation {$R *.DFM} procedure TForm1.ColorGrid1Change(Sender: TObject); begin i:=i+1; case i of 1:shape1.Brush.Color:=colorgrid1.ForegroundColor; 2:shape2.Brush.Color:=colorgrid1.ForegroundColor; 3:shape3.Brush.Color:=colorgrid1.ForegroundColor; 4:shape4.Brush.Color:=colorgrid1.ForegroundColor; 5:shape5.Brush.Color:=colorgrid1.ForegroundColor; 6:shape6.Brush.Color:=colorgrid1.ForegroundColor; 7:shape7.Brush.Color:=colorgrid1.ForegroundColor; 8:shape8.Brush.Color:=colorgrid1.ForegroundColor; 9:shape9.Brush.Color:=colorgrid1.ForegroundColor; 10:shape10.Brush.Color:=colorgrid1.ForegroundColor; 11:shape11.Brush.Color:=colorgrid1.ForegroundColor; 12:shape12.Brush.Color:=colorgrid1.ForegroundColor; 13:shape13.Brush.Color:=colorgrid1.ForegroundColor; 14:shape14.Brush.Color:=colorgrid1.ForegroundColor; 15:shape15.Brush.Color:=colorgrid1.ForegroundColor; 16:shape16.Brush.Color:=colorgrid1.ForegroundColor; end; if i>16 then i:=0; end; end. В результате мы имеем следующую картину (см. рис.64.). Рис.64. Теперь перечислим основные способы анимации графики: – очистка и перерисовки графических объектов; – поочередная визуализация объекта в разных кадрах(в разных страницах); – использование видеопрограмм. Наиболее часто используемым способом в невизуальных языках программирования является первый способ, Pascal позволял нам использовать видеостраницы в графическом режиме 0(grmode:=0). Рассмотрим задачу движения окружности по контуру эллипса. Решим вначале эту задачу первым способом. Причем для наглядности не будем удалять нарисованные окружности. Установим на форму timer1.Определим величину интервала таймера в 100 миллисекунд. Приведем код модуля. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private {Private declarations } public {Public declarations } end; var Form1: TForm1; x,y,r:longint; fi:real; x1,y1,x2,y2,x3,y3:longint; implementation {$R *.DFM} procedure TForm1.Timer1Timer(Sender: TObject); begin fi:=fi+0.1; x:=form1.width div 2 +round(140*cos(fi)); y:=form1.height div 2 +round(70*sin(fi)); x1:=form1.width div 2 +round(100*cos(fi)); y1:=form1.height div 2 +round(120*sin(fi)); x2:=form1.width div 2 +round(100*cos(fi)); y2:=form1.height div 2 +round(50*sin(fi)); x3:=form1.width div 2 +round(10*cos(fi)); y3:=form1.height div 2 +round(50*sin(fi)); form1.Canvas.Brush.Style:=bssolid; form1.Canvas.Brush.Color:=rgb(0,250,0); form1.Canvas.Pen.Color:=rgb(250,0,0); form1.Canvas.Ellipse(x-8,y-8,x+8,y+8); form1.Canvas.Pen.Color:=rgb(50,0,0); form1.Canvas.Brush.Color:=rgb(100,0,200); form1.Canvas.Ellipse(x1-6,y1-6,x1+6,y1+6); form1.Canvas.Brush.Color:=rgb(200,0,0); form1.Canvas.Ellipse(x2-4,y2-4,x2+4,y2+4); form1.Canvas.Brush.Color:=rgb(120,0,100); form1.Canvas.Pen.Color:=rgb(150,0,0); form1.Canvas.Ellipse(x3-4,y3-4,x3+4,y3+4); end; end. В результате мы имеем 4 окружности, двигающиеся по 4 эллиптическим орбитам (см. рис.65.). Очень часто возникает необходимость размещения фигур в конкретные области формы и их последовательный показ. Для этого используется кадры, сформированные с помощью компонент Image. Рассмотрим пример имитации вращения окружности. Установим на форме 7 элементов Shape и элемент timer1.
Рис.65. Рис.66. Приведем код модуля. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Shape1: TShape; Shape2: TShape; Shape3: TShape;Shape4: TShape; Shape5: TShape;Shape6: TShape; Shape7: TShape; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private {Private declarations } public {Public declarations } end; var Form1: TForm1; i:byte; implementation {$R *.DFM} procedure TForm1.Timer1Timer(Sender: TObject); begin i:=i+1; if i>7 then i:=0; case i of 1: begin shape1.Visible:=true;shape2.visible:=false; shape3.visible:=false;shape4.visible:=false; shape5.visible:=false;shape6.visible:=false; shape7.visible:=false; end; 2: begin shape1.Visible:=false;shape2.visible:=true; shape3.visible:=false;shape4.visible:=false; shape5.visible:=false;shape6.visible:=false; shape7.visible:=false; end; 3: begin shape1.Visible:=false;shape2.visible:=false; shape3.visible:=true; shape4.visible:=false; shape5.visible:=false;shape6.visible:=false; shape7.visible:=false; end; 4: begin shape1.Visible:=false;shape2.visible:=false; shape3.visible:=false;shape4.visible:=true; shape5.visible:=false;shape6.visible:=false; shape7.visible:=false; end; 5: begin shape1.Visible:=false;shape2.visible:=false; shape3.visible:=false;shape4.visible:=false; shape5.visible:=true; shape6.visible:=false; shape7.visible:=false; end; 6: begin shape1.Visible:=false;shape2.visible:=false; shape3.visible:=false;shape4.visible:=false; shape5.visible:=false;shape6.visible:=true; shape7.visible:=false; end; 7: begin shape1.Visible:=false;shape2.visible:=false; shape3.visible:=false;shape4.visible:=false; shape5.visible:=false;shape6.visible:=false; shape7.visible:=true; end;end; end; end. При запуске программы мы увидим движение окружности около точки. Визуальные технологии программирования имеют очень удобные, быстро реализуемые возможности создания фрагментов мультипликационных фильмов.
Дата добавления: 2014-01-05; Просмотров: 612; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |