Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / Программирование в среде Delphi (Часть 2).pdf
Скачиваний:
82
Добавлен:
27.05.2015
Размер:
1.41 Mб
Скачать

Институт информационных технологий и автоматизированных систем

Кафедра информационных технологий в металлургии

Программирование в среде Delphi. Часть 2

Новокузнецк

2011

Содержание

1 Компоненты Delphi ................................................................................................

3

1.1

Компонент класса TGroupBox .....................................................................

3

1.2

Компонент класса TRadioButton ..................................................................

3

1.3

Компонент класса TRadioGroup...................................................................

4

1.4

Компонент класса TCheckBox .....................................................................

4

1.5

Компонент класса TListBox .........................................................................

4

1.6

Компонент класса TForm..............................................................................

5

1.7

Компонент класса TImage ............................................................................

7

1.8

Компонент класса TTimer.............................................................................

7

1.9

Компонент класса TImageList ......................................................................

8

1.10

Компоненты классов TActionList и TAction.............................................

8

1.11

Компонент класса TMainMenu...................................................................

8

1.12

Компоненты классов TToolBar и TToolButton .......................................

10

1.13

Компоненты класса TStatusBar и TStatusPanel.......................................

11

1.14

Компоненты классов TOpenDialog и TSaveDialog.................................

12

1.15

Компонент класса TTreeView ..................................................................

12

2 Примеры выполнения практических заданий ...................................................

15

2.1

Стандартные алгоритмы .............................................................................

15

2.2

Элементы выбора ........................................................................................

17

2.3

Простейшие классы.....................................................................................

20

2.4 Графика.........................................................................................................

23

2.5

Диалоговые окна..........................................................................................

27

2.6

Комплексное задание ..................................................................................

33

2.7

Наследование ...............................................................................................

39

2.8

Древовидные структуры .............................................................................

46

2

1 Компоненты Delphi

1.1 Компонент класса TGroupBox

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

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

Полезным свойством компонента класса TGroupBox является свойство Caption позволяющее дать общее название компонентам, расположенным внутри него.

1.2 Компонент класса TRadioButton

Компоненты класса TRadioButton («зависимая кнопка») предназначены для организации в диалоге с пользователем элемента выбора, позволяющего указать ровно один вариант из нескольких возможных. Это достигается путем реализации1 взаимодействия между всеми компонентами данного класса, расположенными в некотором контейнере (в простейшем случае контейнером является сама форма).

Компонент расположен в разделе компонентов Standard (). Основными используемыми свойствами компонента являются:

Caption. Строка, описывающая назначение компонента;

Checked. Логическое свойство, позволяющее проверить или задать вы-

бор компонента. Если в некотором контейнере расположено несколько компонентов класса TRadioButton, то только у одного из них данное свойство может иметь значение True (у всех остальных компонентов данного класса, расположенных внутри контейнера, данное свойство автоматически примет значение False).

Если в некотором контейнере расположено несколько компонентов класса TRadioButton (например, варианты ответа на некоторый вопрос), то

1 Реализация взаимодействия между компонентами заложена в их внутреннем устройстве.

3

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

1.3 Компонент класса TRadioGroup

Данный компонент является комбинацией (по внешнему виду) компонентов классов TGroupBox и TRadioButton и предназначен для реализации выбора по типу «один из нескольких». Компонент расположен в разделе компонентов Standard ().

Основными используемыми свойствами компонента являются:

Caption. Строка, описывающая назначение компонента;

Items. Набор строк, каждая из которых задает один элемент выбора

(похожий на компонент класса TRadioButton). Редактирование строк осуществляется во внешнем редакторе, вызываемом путем нажатия кнопки (), расположенной рядом с данным свойством в окне «Object Inspector»;

ItemIndex. Целочисленное свойство, позволяющее узнать или задать элемент, выбранный в компоненте. Значение «0» соответствует первому элементу, «1» – второму и т.д. Значение «-1» означает, что ни один элемент внутри компонента не выбран. Таким образом, в отличие от блока компонентов класса TRadioButton, для определения выбранного элемента достаточно просто обратиться к этому свойству, а не перебирать все элементы;

Columns. Определяет количество столбцов, в которые будет производится вывод элементов внутри компонента.

Размещение элементов выбора внутри компонента производится автоматически в зависимости от размеров компонента, количества элементов выбора и значения свойства Columns.

1.4 Компонент класса TCheckBox

Компонент данного класса, называемый «независимая кнопка», аналогичен компоненту класса TRadioButton (с точки зрения свойств и принципов использования) с тем лишь исключением, что данные компоненты не взаимодействуют между собой, что позволяет организовать выбор по типу «несколько из нескольких». Компонент расположен в разделе компонентов

Standard ().

1.5 Компонент класса TListBox

Данный компонент предназначен для отображения списка строк и может служить средством выбора по типу «один из нескольких». Компонент распо-

4

ложен в разделе компонентов Standard (). В отличии от компонентов класса TRadioGroup, компонент класса TListBox имеет полосу прокрутки, что позволяет реализовывать выбор из большого количества вариантов.

Основным используемым свойством компонента является свойство Items (класс TStrings), описывающее набор строк и методы работы с ними, некоторые из которых приведены ниже:

Items.Count : integer. Позволяет определить количество строк, содержащихся в компоненте;

Items.Strings[Index : integer] : string. Обеспечивает доступ к

строкам компонента по их индексу, при этом Index=0 – первая строка, 1 – вторая и т.д.;

Items.Objects[Index : integer] : TObject. Обеспечивает доступ

кобъектам, связанным со строками компонента, где Index=0 – первая строка, 1 – вторая и т.д.;

Items.Add(const s : string) : integer. Осуществляет добавление

вкомпонент новой строки s и получение индекса, под которым она добавлена;

Items.AddObject(const s : string; AObject : TObject) :

integer. Осуществляет добавление в компонент новой строки s, связывание

со строкой объекта AObject и получение индекса, под которым строка добавлена;

Items.Clear. Производит удаление всех строк из компонента;

Items.Delete(Index : integer). Выполняет удаление строки с ука-

занным индексом.

Операции удаления одной или всех строк не разрушают объекты, связанные с этими строками. Поэтому если объекты хранятся только в компоненте, то перед удалением строк требуется разрушение объектов, связанных с этими строками.

Часто используемым свойством является свойство ItemIndex (integer), определяющее или задающее выбранную строку в компоненте. Значение «0» соответствует первой строке, значение «1» – второй и т.д. Значение «-1» указывает на то, что ни одна строка не выбрана.

1.6 Компонент класса TForm

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

Одна новая форма добавляется в проект автоматически при создания приложения1, остальные добавляются путем выбора пункта меню «File → New → Form» или нажатия кнопки на панели инструментов.

1 При условии, что создается приложение типа “Windows Form Application”.

5

Некоторые свойства и события данного компонента:

AutoSize. Логическое свойство, определяющее, нужно ли подбирать размер формы на основе размера и положения расположенных на ней компонентов;

BorderStyle. Свойство, определяющее тип границы компонента. При значении bsDialog, применяемом для диалоговых окон, меняется внешний вид и поведение формы: убираются кнопки «минимизации» и «развертывания», пользователь не может изменять размеры диалогового окна, убирается меню и т.д.;

BorderWidth. Определяет толщину границы (в пикселах). Полезно при автоматическом подборе размера формы, т.к. не дает расположенных на форме компонентам «прилипать» к самой границе окна;

Caption. Определяет заголовок формы;

Menu. Определяет ссылку на компонент, формирующий основное меню

формы;

MоdalResult. Свойство, позволяющее определить способ закрытия «модального» диалогового окна. Доступно только программным способом. Значения, которые может принимать свойство, ограничены определенным набором. Наиболее часто используемые: mrNone, mrOk, mrCancel;

OnActivate. Событие, возникающее при каждом получении формой фокуса ввода;

OnCloseQuery. Событие, возникающее перед закрытием формы и позволяющее заблокировать это закрытие. Имеет параметр CanClose логического типа. Присвоение значения False данному параметру блокирует закрытие формы;

OnCreate. Событие, возникающее один раз при создании формы. Полезно для выполнения действий, подготавливающих форму к работе;

OnDestroy. Событие, возникающее один раз перед разрушением формы. Полезно для выполнения действий, подготавливающих форму к разрушению (например, освобождение памяти, выделенной во время работы формы);

OnResize. Событие, возникающее при изменении размера формы;

OnShow. Событие, возникающее при переводе формы из невидимого

состояния в видимое.

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

procedure Show. Простое отображение формы. При этом может осуществляться одновременно работа как в основной форме, так и в вызванной;

function ShowModal : TModalResult. Отображение формы в виде

диалогового окна (в «модальном» режиме). При таком отображении происходит блокирование всех остальных форм приложения (в том числе и основной) до тех пор, пока работа с диалоговым окном не будет завершена. Результат за-

6