Операторы цикла. Создание изображений 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операторы цикла. Создание изображений



Цель работы:приобрести опыт работы, связанной с вычислениями или с обработкой данных, при которой приходится выполнять многократно (циклически) повторяющиеся действия. Изучить классы и компоненты Delphi, предназначенные для создания изображений. Научиться создавать простые изображения.

 

Краткие теоретические сведения

Операторы цикла.

В языке Паскаль имеются три типа цикла:

1) цикл со счетчиком;

2) цикл с предусловием;

3) цикл с постусловием.

Цикл со счетчиком или оператор цикла FOR может использоваться в

двух представлениях (форматах):

FOR <параметр цикла>:= <S1> TO <S2> DO

<Оператор>;

FOR <параметр цикла>:= <S1> DOWNTO <S2> DO

<Оператор>;

S1 и S2 – выражения, определяющие соответственно начальное и

конечное значение параметра цикла. FOR, TO, DO – зарезервированные

слова, составляющие заголовок цикла. <Оператор> – тело цикла, кото-

рое может быть простым или составным оператором. Оператор FOR

выполняется до тех пор, пока не будут перебраны все значения цикла от

начального до конечного. Цикл FOR используется, как правило, в слу-

чаях, когда число повторений известно. Выполнение цикла начинается с присвоения параметру стартового значения. Затем следует проверка, не превосходит ли параметр конечное значения. Если результат проверки утвердительный, то цикл считается завершенным, и управление передается следующему за телом цикла оператору. В противном случае выполняется тело цикла, и параметр меняет свое значение на следующее согласно заголовку цикла. В блок- схемах такие циклы изображаются так, как показано на рис. 3.1

Рис. 3.1. Блок модификации в цикле с параметром

На рисунке i-переменная цикла, in-начальное значение, ik- конечное значение. Блок, в котором указаны все эти значения, называется блоком модификации.

Оператор цикла с предусловием WHILE имеет следующий формат:

WHILE <условие> DO <Тело цикла>;

<Условие> – булевское выражение, <тело цикла> – простой или со-

ставной оператор. Оператор выполняется до тех пор, пока <условие>

является истинным (TRUE). Само условие может быть логической константой, переменной или логическим выражением. Условие выполнения тела цикла проверяется до начала каждой итерации. Поэтому, если условие сразу не выполняется, то тело цикла игнорируется, и управление передается оператору, стоящему сразу за телом цикла. В блок- схемах циклы While…do изображаются так, как показано на рис. 3.2.

Рис. 3.2. Изображение на блок-схеме цикла While…do.

Оператор цикла с постусловием REPEAT имеет следующий формат:

REPEAT <оператор>... <оператор> UNTIL <условие>;

Операторы, заключенные между словами REPEAT и UNTIL, состав-

ляют тело цикла. Оператор REPEAT выполняется до тех пор, пока <ус-

ловие> является ложным (FALSE).Цикл с постусловие всегда выполняется хотя бы один раз. В блок- схемах циклы Repeat …Until изображаются так, как показано на рис. 3.3.

Рис. 3.3. Изображение на блок-схеме цикла Repeat…until.

 

Операторы цикла WHILE, REPEAT используются в случаях, когда

число повторений заранее неизвестно.

Создание изображений

В Delphi имеется несколько классов общего назначения, позволяющих выводить графические изображения на поверхность компонентов. К ним относятся классы: TFont (шрифт), ТРеn (карандаш), TBrush (кисть) и TCanvas (канва). Предком классов TFont, TPen и TBrush явля­ется класс TGraphicsObject, происходящий непосредственно от класса TPersistent. Предком класса TCanvas является класс TPersistent. В составе многих компонентов Delphi имеются свойства Font, Pen, Brush и Canvas соответствующего типа, при помощи которых создаются изображения любых рисунков и текстов.

При изменении графического объекта возникает событие OnChange. После возникновения этого события графические объекты отображаются с обновленными значениями своих свойств.

В Delphi имеются компоненты, специально предназначенные для создания графических изображений:

TImage – представляет собой удобное средство для отображения готовых графических файлов.

TShape – используется для создания на форме простых геометрически фигур: квадратов, кругов, эллипсов и т.п.

TPaintBox – позволяет на этапе выполнения программы создавать несложные рисунки на своей канве Canvas.

 

Класс TFont

Класс TFont определяет характеристики шрифта, и свойства, имеющие этот классовый тип, присутствуют в любом компоненте, который может содержать некоторый текст. Характеристики шрифта в классе TFont задаются при помощи следующих свойств:

Charset – определяет набор символов шрифта. Ниже перечислены некоторые константы, которые могут быть использованы в качестве значения свойства Charset:

ANSI_CHARSET – символы ANSI.

DEFAULT_CHARSET – задается по умолчанию. Шрифт выбирается только по его имени Name и размеру Size. Если описанный шрифт недоступен в системе, Windows заменит его другим шрифтом.

SYMBOL_CHARSET – стандартный набор символов.

MAC_CHARSET – символы Macintosh.

GREEK_CHARSET – греческие символы.

RUSSIAN_CHARSET – символы кириллицы.

OEM_CHARSET – определяется кодовой таблицей операционной системы.

Color – определяет цвет символов.

Height – устанавливает высоту шрифта в пикселях.

Name – задает имя шрифта.

Pitch – задает ширину шрифта и может принимать следующие значения:

fpDefault – ширина задается типом шрифта,

fpVariable – ширина символов переменная,

fpFixed – ширина символов фиксированная.

Size – задает высоту шрифта в пунктах (1 пункт = 1/72 дюйма).

Style – задает тип шрифта и в качестве значения может принимать любое множество следующих величин:

fsBold – полужирный,

fsltalic – курсив,

fsUnderline – подчеркнутый,

fsStrikeOut – перечеркнутый.

Следует иметь в виду, что тексты в Delphi пишутся только горизонтально.

Класс TPen

Класс ТРеn задает характеристики карандаша, при помощи которого создаются изображения различных линий либо контуров.

Основные свойства класса ТРеn:

Color – определяет цвет линии, рисуемой карандашом. По умолчанию цвет черный.

Mode – определяет стиль рисования линий карандашом. Может принимать следующие значения:

pmBlack – всегда изображается черная линия;

pmWhite – всегда изображается белая линия;

pmNop – бесцветная линия;

pmNot – цвет, инверсный цвету экрана;

pmCopy – цвет определяется значением свойства Color;

pmNotCopy – цвет, инверсный цвету, заданному в свойстве Color;

pmMergePenNot – комбинация цвета Color и инверсного цвета экрана;

pmMaskPenNot – комбинация цветов, общих у Color и инверсного цвета экрана;

pmMergeNotPen – комбинация цвета экрана и инверсного цвета Color;

pmMaskNotPen – комбинация цветов, общих у цвета экрана и инверсного цвета и Color;

pmMerge – комбинация цветов экрана и Color;

pmNotMerge – цвет, инверсный комбинации цветов экрана и Color;

pmMask – комбинация цветов, общих у экрана и Color;

pmNotMask – цвет инверсный комбинации цветов, общих у экрана и Color;

pmXor – комбинация цветов, присутствующих у цвета экрана или Color, но не одновременно у обоих;

pmNotXor – цвет, инверсный комбинации цветов, присутствующих у цвета экрана или Color, но не одновременно у обоих.

По умолчанию цвет линии определяется свойством Color.

Style – определяет стиль линии, рисуемой карандашом. Может принимать следующие значения:

psSolid – сплошная линия (значение по умолчанию);

psDash – штриховая линия;

psDot – пунктирная линия;

psDashDot – штрихпунктирная линия;

psDashDotDot – штрихпунктирная линия с двумя пунктирами;

psClear – невидимая линия;

psInsideFrame – линия внутри замкнутой рамки.

Width – определяет толщину рисуемой линии. Значением по умолчанию является толщина, равная 1 пикселю.

Класс TBrush

Класс TBrush содержит определение характеристик кисти, которая используется для заливки (закраски) замкнутых областей.

Основные свойства класса TBrush:

Bitmap – указывает на объект, содержащий побитовое отображение изображения, размером 8 × 8 пикселей. Если Bitmap не пустой, то шаблон заполнения определяется именно им, а не свойством Style. В противном случае свойство должно иметь значение nil.

Color – определяет цвет кисти. Значением по умолчанию является белый цвет.

Style – определяет орнамент кисти. Может принимать следующие значения:

bsSolid – сплошная раскраска;

bsClear – отсутствие раскраски;

bsHorizontal – горизонтальные линии;

bsVertical – вертикальные линии;

bsFDiagonal – левые диагональные линии;

bsBDiagonal – правые диагональные линии;

bsCross – клетка;

bsDiagCross – косая клетка.

 

Компонент Image

Страница Палитры компонентов Additional.

Иерархия: TObject→TPersistent→TComponent→TControl→

→TGraphicControl→TImage.

Компонент класса TImage используется для размещения на форме некоторой картинки. Файл изображения может быть битовой картой (файл с расширением. bmp), пиктограммой (файл с расширением. iсо), метафайлом (файл с расширением. wmf).

Класс TImage является непосредственным потомком класса TGraphicControl и, следовательно, принадлежит к семейству графических элементов управления.

Основные свойства компонента TImage:

Canvas – предназначается для формирования изображения на этапе выполнения программы.

Center – если свойство имеет значение Тruе, изображение выравнивается по центру компонента, в противном случае изображение помещается в левом верхнем углу компонента. По умолчанию имеет значение False.

Picture – свойство классового типа TPicture – определяет изображение, помещенное в компоненте.

Stretch – если свойство имеет значение True, изображение, определяемое свойством Picture, увеличивается или уменьшается до размеров компонента. По умолчанию имеет значение False.

Как и другие графические элементы управления, компонент TImage обрабатывает все события от мыши. Событий по умолчанию не имеет.

При помещении изображения в компонент TImage на этапе проектирования можно использовать окно задания изображения. Это окно раскрывается при активизации компонента либо при выборе свойства Picture в Инспекторе объектов. Основное поле окна задания изображения предназначено для размещения выбранной картинки. Кроме этого, в окне имеются следующие кнопки:

Load – для загрузки изображения из файла;

Save – для записи изображения в файл;

Clear – для удаления выбранного изображения;

ОК – для записи в компонент выбранного изображения;

Cancel – для отмены введенных изменений.

 

Компонент Shape

Страница Палитры компонентов: Additional

Иерархия: TObect→TPersistent→TComponent→TControl→

→TGraphicControl.

Экземплярами класса TShape являются компоненты-фигуры: круги, эллипсы, прямоугольники и т.п. Эти фигуры могут быть использованы для стилизации Вашего приложения.

Класс TShape является непосредственным потомком класса TGraphicControl и так же, как и класс TImage, входит в семейство графических элементов управления.

Основные свойства компонента TShape:

Brush – определяет кисть для закрашивания поверхности фигуры.

Pen – определяет карандаш для рисования контура фигуры.

Shape – определяет фигуру, выводимую на экран:

stRectangle – прямоугольник;

stSquare – квадрат;

stRoundRect – прямоугольник с закругленными краями;

stRoundSquare – квадрат с закругленными краями;

stEllipse – эллипс;

stCircle – круг.

Событием по умолчанию для компонента Shape является событие OnDragDrop.

Компонент Timer

 

Страница Палитры компонентов: System

Иерархия: TObject→TPersistent→TComponent.

Компонент TTimer предназначен для отсчета интервалов реального времени. Он не предназначен для создания графических изображений и является вспомогательным компонентом. Нами он будет использован при создании проектов, содержащих графические компоненты.

Таймер класса TTimer является невизуальным компонентом, и его можно отнести к разряду вспомогательных компонентов. Таймер предназначен для инициирования какой-либо операции через заданные промежутки времени.

Основные свойства компонента TTimer:

Enabled – если свойство имеет значение True, то таймер реагирует на собственное событие OnTimer.

Interval – определяет временной интервал в миллисекундах, после которого появляется событие OnTimer. По умолчанию равно 1000 (1 секунда).

Кроме того, в классе TTimer определено событие OnTimer, которое возникает периодически по истечении интервала времени, определяемого свойством Interval. Оно является событием, используемым по умолчанию.



Поделиться:


Последнее изменение этой страницы: 2017-01-19; просмотров: 199; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.175.232.163 (0.147 с.)