Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilet_1.docx
Скачиваний:
2
Добавлен:
14.04.2019
Размер:
341.16 Кб
Скачать

Перечисляемый тип

Определить перечисляемый тип – это значит перечислить все значения, которые может принимать переменная, относящаяся к данному типу.

В общем виде объявление перечисляемого типа выглядит так:

Тип =(Значение1, Значение2, ... Значение i)

где Тип – имя перечисляемого типа данных; Значение – символьная константа, определяющая одно из значений, которое может принимать переменная типа Тип.

Очевидно, что программа, написанная с использованием объявленного программистом типа, более наглядна, легче читается и, следовательно, уменьшается вероятность появления ошибки.

Во время компиляции Delphi проверяет соответствие типа переменной типу выражения, которое присваивается переменной. Если тип выражения не может быть приведен к типу переменной, то выводится сообщение об ошибке.

Интервальный тип

Интервальный тип является отрезком или частью другого типа, называемого базовым. В качестве базового обычно используют целый тип данных (integer).

При объявлении интервального типа указываются нижняя и верхняя границы интервала, т.е. наименьшее и наибольшее значение, которое может принимать переменная объявляемого типа. В общем виде объявление интервального типа выглядит так:

Тип = НижняяГраница .. ВерхняяГраница;

где Тип – имя объявляемого интервального типа данных; НижняяГраница – наименьшее значение, которое может принимать переменная объявляемого типа; ВерхняяГраница – наибольшее значение, которое может принимать переменная объявляемого типа.

Помимо целого типа в качестве базового можно использовать перечисляемый тип, созданный программистом. В следующем фрагменте на основе типа TMonth объявлен интервальный тип TSummer:

type

TMonth = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);

TSummer = Jun.. Aug;

Билет 45

Запись

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

С одной стороны, запись можно рассматривать как единую структуру, а с другой – как набор отдельных элементов, компонентов. Характерной особенностью записи является то, что составляющие ее компоненты могут быть разного типа. Другая особенность записи состоит в том, что каждый компонент записи имеет имя.

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

Объявление записи

Как любой тип, создаваемый программистом, тип "запись" должен быть объявлен в разделе type. В общем виде объявление типа "запись" выглядит так:

Имя = record

Поле_1 : Тип_1;

Поле_2 : Тип_2;

Поле_К : Тип_К;

end;

где Имя – имя типа "запись"; record – зарезервированное слово языка Delphi, означающее, что далее следует объявление компонентов (полей) записи; Поле_i и Тип_i – имя и тип i–го компонента (поля) записи, где i=1, ..., k; end – зарезервированное слово языка Delphi, означающее, что список полей закончен.

Инструкция with

Инструкция with позволяет использовать в тексте программы имена полей без указания имени переменной–записи. В общем виде инструкция with выглядит следующим образом:

with Имя do

begin

{ инструкции программы }

end;

где Имя – имя переменной–записи; with – зарезервированное слово языка Delphi, означающее, что далее, до слова end, при обращении к полям записи имя, имя записи можно не указывать.

Билет 46

Ввод и вывод записей в файл

Записи можно хранить в файле. Для того чтобы программа могла сохранить значение переменной–записи в файле или ввести его из файла, необходимо объявить файл, указав в качестве типа его компонентов тип "запись".

Процесс работы с файлом записей практически ничем не отличается от процесса работы с обычным файлом. Сначала надо объявить файловую переменную и с помощью процедуры Assign связать эту переменную с конкретным файлом. Затем нужно открыть файл (для чтения, записи или обновления). После этого можно прочитать запись из файла или записать запись в файл.

Вывод записи в файл

Компонент ComboBox, значок которого находится на вкладке Standard (рис. 10.2), дает возможность ввести данные либо непосредственно в поле ввода–редактирования, либо путем выбора из списка, который появляется в результате щелчка на кнопке раскрывающегося списка.

В табл. 10.1 перечислены свойства компонента ComboBox.

Таблица 10.1. Свойства компонента ComboBox

Свойство

Определяет

Name

Имя компонента. Используется для доступа к свойствам компонента

Text

Текст, находящийся в поле ввода–редактирования

Items

Элементы раскрывающегося списка

DropDownCount

Количество отображаемых элементов в раскрытом списке

Left

Расстояние от левой границы компонента до левой границы формы

Top

Расстояние от верхней границы компонента до верхней границы формы

Height

Высоту компонента (поля ввода–редактирования)

Width

Ширину компонента

Font

Шрифт, используемый для отображения элементов списка

ParentFont

Признак наследования свойств шрифта родительской формы

Список, который появляется в результате щелчка на кнопке раскрытия списка, может быть сформирован как в процессе разработки формы приложения, так и во время работы программы. Чтобы сформировать список во время разработки формы, нужно в окне Object Inspector выбрать свойство Items, щелкнуть на кнопке активизации редактора списка строк (кнопка с тремя точками) и ввести элементы списка

Процедура TForm1.FormClose закрывает файл базы данных поскольку тип TMedal используется двумя процедурами (TForm1.FormActivate и TForm1.Button1Сlick), то его описание помещено в раздел type модуля формы. Объявление файловой переменной f по этой же причине помещено в раздел объявления переменных модуля формы.

Чтение записи из файла

Для вывода результата чтения из файла используется компонент Memo1.

Так как компонент Memo1 предназначен только для просмотра информации, то свойству Readonly (только чтение, просмотр) присвоено значение True. Свойство ScrollBars (полосы прокрутки) компонента Memo позволяет задавать отображаемые полосы прокрутки. По умолчанию свойству ScrollBars присвоено значение ssNone, т.е. полосы прокрутки не отображаются. В рассматриваемом примере выводится вертикальная полоса, поэтому свойству ScrollBars присвоено значение ssVertical.

Таблица 10.2. Значения свойств компонентов

Свойство

Значение

RadioButton1 . Checked

True

Label1 .Enabled

False

ComboBox1 . Enabled

False

Memo1 . Readonly

True

Memo1. ScrollBars

ssVertical

Процедура TForm1.Button1Click открывает файл и последовательно считывает находящиеся в нем записи. Содержимое записи добавляется в поле Memo1, если прочитанная запись удовлетворяет условию запроса, т.е. содержимое поля country совпадает с названием страны, введенным пользователем в поле редактирования компонента ComboBox1, или если выбран переключатель RadioButton1.

Информация в поле Memo добавляется инструкцией Memo1.Lines.Add(st), которая является инструкцией применения метода Add (Добавить) к компоненту Memo1.

Примечание. Понятие "метод" будет подробно рассмотрено далее, в разделе, посвященном объектно–ориентированному программированию. Сейчас только скажем, что метод – это процедура, инструкция вызова которой записывается особым образом с целью показать, что одним из ее параметров является объект.

Билет 47

Delphi позволяет программисту разрабатывать программы, которые могут выводить графику: схемы, чертежи, иллюстрации. Программа выводит графику на поверхность объекта (формы или компонента Image). Поверхности объекта соответствует свойство Canvas. Для того чтобы вывести на поверхность объекта графический элемент (прямую линию, окружность, прямоугольник и т.д.), необходимо применить к свойству Canvas этого объекта соответствующий метод. Например, инструкция Form1.Canvas.Rectangle (10, 10, 100, 100) вычерчивает в окне программы прямоугольник.

Холст

Как было сказано ранее, поверхности, на которую программа может выводить графику, соответствует свойство Canvas. В свою очередь, свойство Canvas – это объект типа TCanvas. Методы этого типа обеспечивают вывод графических примитивов (точек, линий, окружностей, прямоугольников и т.д.), а свойства позволяют задать характеристики выводимых графических примитивов:

  • цвет, толщину и стиль линий;

  • цвет и вид заполнения областей;

  • характеристики шрифта при выводе текстовой информации.

Методы вывода графических примитивов рассматривают свойство Canvas как некоторый абстрактный холст, на котором они могут рисовать (canvas переводится как "поверхность", "холст для рисования"). Холст состоит из отдельных точек – пикселов. Положение пиксела характеризуется его горизонтальной (X) и вертикальной (Y) координатами. Левый верхний пиксел имеет координаты (0, 0). Координаты возрастают сверху вниз и слева направо (рис. 12.1). Значения координат правой нижней точки холста зависят от размера холста.

Размер холста можно получить, обратившись к свойствам Height и Width области иллюстрации (Image) или к свойствам формы: ClientHeight и ClientWidth.

Билет 48

Карандаш и кисть

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

Карандашу и кисти, используемым для вывода графики на холсте, соответствуют свойства Реn (карандаш) и Brush (кисть), которые представляют собой объекты типа TPen и TBrush, соответственно. Значения свойств этих объектов определяют вид выводимых графических элементов

Карандаш

Карандаш используется для вычерчивания точек, линий, контуров геометрических фигур: прямоугольников, окружностей, эллипсов, дуг и др. Вид линии, которую оставляет карандаш на поверхности холста, определяют свойства объекта TPen, которые перечислены в табл. 12.1.

Таблица 12.1. Свойства объекта треп (карандаш)

Свойство

Определяет

Color

Цвет линии

Width

Толщину линии

Style

Вид линии

Mode

Режим отображения

Свойство Color задает цвет линии, вычерчиваемой карандашом. В табл. 12.2 перечислены именованные константы (тип TColor), которые можно использовать в качестве значения свойства color.

Свойство width задает толщину линии (в пикселах). Например, инструкция Canvas. Pen. width: =2 устанавливает толщину линии в 2 пиксела.

Свойство style определяет вид (стиль) линии, которая может быть непрерывной или прерывистой, состоящей из штрихов различной длины. В табл. 12.3 перечислены именованные константы, позволяющие задать стиль линии. Толщина пунктирной линии не может быть больше 1. Если значение свойства Pen.width больше единицы, то пунктирная линия будет выведена как сплошная.

Таблица 12.3. Значение свойства Реn. style определяет вид линии

Константа

Вид линии

psSolid

Сплошная линия

psDash

Пунктирная линия, длинные штрихи

psDot

Пунктирная линия, короткие штрихи

psDashDot

Пунктирная линия, чередование длинного и короткого штрихов

psDashDotDot

Пунктирная линия, чередование одного длинного и двух коротких штрихов

psClear

Линия не отображается (используется, если не надо изображать границу области, например, прямоугольника)

Свойство Mode определяет, как будет формироваться цвет точек линии в зависимости от цвета точек холста, через которые эта линия прочерчивается. По умолчанию вся линия вычерчивается цветом, определяемым значением свойства Pen.Color.

Однако программист может задать инверсный цвет линии по отношению к цвету фона. Это гарантирует, что независимо от цвета фона все участки линии будут видны, даже в том случае, если цвет линии и цвет фона совпадают.

Таблица 12.4. Значение свойства Реп. Mode влияет на цвет линии

Константа

Цвет линии

pmBlack

Черный, не зависит от значения свойства Pen. Color

pmWhite

Белый, не зависит от значения свойства Pen. Color

pmCopy

Цвет линии определяется значением свойства Pen . Color

pmNotCopy

Цвет линии является инверсным по отношению к значению свойства Pen. Color

pmNot

Цвет точки линии определяется как инверсный по отношению к цвету точки холста, в которую выводится точка линии

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]