Элемент «Группа переключателей»
⇐ ПредыдущаяСтр 2 из 2 Группы переключателей предназначены для выбора одного из нескольких вариантов действий. Их можно применять вместо экранных меню, которые использовались ранее в консольных приложениях. На вкладке «Стандартные» панели элементов группы переключателей обозначены пиктограммой Группы переключателей описываются при помощи класса TRadioGroup, основные свойства которого приведены в следующей таблице:
Для задания списка вариантов необходимо на вкладке свойств инспектора объектов нажать на кнопку с изображением многоточия, появляющуюся при выборе свойства Items: Для примера рассмотрим форму, на которую вставлены два компонента: группа переключателей и кнопка. В группе переключателей зададим список из трех вариантов. В результате форма будет иметь следующий вид: Модуль Unit1. pas UNIT Unit1; INTERFACE USES Windows,Messages,SysUtils,Classes,Controls,...; TYPE TForm1=CLASS(TForm) RadioGroup1:TRadioGroup; Button1:TButton; PROCEDURE Button1Click(Sender:TObject); END; VAR Form1:TForm1; IMPLEMENTATION PROCEDURE TForm1.Button1Click(Sender:TObject); BEGIN CASE RadioGroup1.ItemIndex OF 0:ShowMessage('Выбран вариант 1'); 1:ShowMessage('Выбран вариант 2'); 2:ShowMessage('Выбран вариант 3'); END; END; END.
Если в списке «RadioGroup1» выбрать некоторый вариант и нажать кнопку «Button1», будет выдано сообщение о выборе соответствующего варианта.
Основы визуального программирования Элемент «Изображение» Элемент «Изображение» предназначены для представления на форме графической информации. На панели элементов он находится на вкладке «Дополнительные» («Additional») и обозначен пиктограммой Элемент интерфейса «Изображение» описывается с помощью класса TImage, содержащего следующие основные свойства:
Для задания изображения (свойства Picture) можно использовать кнопку с многоточием, выводимую рядом с этим свойством на панели «Инспектор объектов». При нажатии на нее будет выдано диалоговое окно, позволяющее загрузить изображение из файла.
Виды изображений Все изображения можно разделить на две группы: растровые и векторные. Растровые изображения представляют собой двумерный массив точек, для каждой из которых независимо может быть задан свой цвет, как показано на следующем рисунке: Например, экран монитора представляется как растровое изображение. Достоинства: возможность представлять изображения любой сложности, например фотореалистичные. Недостатки: для изображений с большим количеством цветов и большим разрешением требуется большой объем памяти, причем занимаемый объем памяти растет квадратично при росте разрешения; плохие возможности масштабирования, так как, например, при увеличении изображения будет увеличиваться только размер точек, что приведет к значительному ухудшению качества. В Windows стандартный формат представления растровых изображений – битовые карты (Bitmap), хранящиеся в файлах с расширением BMP.
Векторные изображения формируются из геометрических примитивов (отрезков, окружностей, эллипсов и т.д.), например: Достоинства: малый объем занимаемой памяти, возможность масштабирования. Недостатки: возможность представлять только достаточно простые изображения, в связи с чем используются для представления схем, чертежей, деловой графики и т.д. Стандартный формат хранения векторных изображений в Windows – так называемые метафайлы (Metafile) с расширением WMF.
Класс TPicture Для представления изображений в Delphi используется класс
В дальнейшем будем рассматривать только растровые изображения.
Класс TBitmap Класс TBitmap используется в Delphi для представления растровых изображений, содержит свойства, приведенные в следующей таблице.
Если никакого изображения не загружено, растровое изображение, представляемое классом TBitmap, является пустым, т.е. его ширина и высота равны 0. Поэтому, для отображения графической информации необходимо сначала задать размеры изображения, содержащегося в элементе TImage. Например, эти размеры можно сделать равными размерам самого элемента TImage, в результате чего для рисования можно будет использовать всю занимаемую этим элементом на форме область. Для иллюстрации основных свойств классов TImage, TPicture и TBitmap рассмотрим следующий пример формы, содержащей элемент «Изображение» и кнопку:
Процедура обработки события от нажатия кнопки Button1 задает размеры растрового изображения, содержащегося в элементе Image1, равными размерам этого элемента. Пример PROCEDURE TForm1.Button1Click(Sender:TObject); BEGIN Image1.Picture.Bitmap.Width:=Image1.Width; Image1.Picture.Bitmap.Height:=Image1.Height; END;
Уже из приведенного примера видно, что обращаться к свойствам глубоко вложенных друг в друга классов крайне неудобно. В языке Паскаль в таких случаях можно применять описанный далее оператор.
Оператор WITH Синтаксис WITH <Структурная переменная> DO <Оператор>
Оператор WITH применяется для упрощения доступа к свойствам структурных переменных (типа «запись», «объект» или «класс»). Действие оператора можно продемонстрировать, переписав соответствующим образом тело процедуры, приведенной в предыдущем примере. Пример WITH Image1.Picture.Bitmap DO BEGIN Width:=Image1.Width; Height:=Image1.Height; END;
Класс TCanvas Класс TCanvas предоставляет средства для рисования на различных типах изображений, например на растровых изображениях, представляемых классом TBitmap. Основные используемые для рисования процедуры класса TCanvas приведены в следующей таблице.
Продемонстрируем использование процедур класса TCanvas на примере изображения треугольника с известными сторонами. Расположим треугольник, как показано на следующем рисунке:
, Перепишем процедуру обработки события от нажатия кнопки Пример PROCEDURE TForm1.Button1Click(Sender: TObject); VAR a,b,c,p,s,h:Real; BEGIN WITH Image1.Picture.Bitmap DO BEGIN Width:=Image1.Width; Height:=Image1.Height; END;
a:=150;b:=100;c:=120;
p:=(a+b+c)/2; s:=Sqrt(p*(p-a)*(p-b)*(p-c)); WITH Image1.Picture.Bitmap.Canvas DO BEGIN MoveTo(0,0); LineTo(Round(a),0); h:=2*s/a; LineTo(Round(Sqrt(Sqr(c)-Sqr(h))),Round(h)); LineTo(0,0); END; END;
Результат работы программы представлен на следующем рисунке.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|