Главные составные части среды программирования




Содержание

Лабораторная работа № 1. 2

Лабораторная работа № 2. 5

Лабораторная работа №3. 8

Лабораторная работа № 4. 11

Лабораторная работа №5. 14

Лабораторная работа № 6. 18

Лабораторная работа № 7. 21

Лабораторная работа №8. 24


Лабораторная работа № 1

Среда программирования Delphi. Интерфейс программы.

Компоненты Button, Label

 

Теоретический материал

Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows.

Главные составные части среды программирования

Ниже перечислены основные составные части Delphi:

1. Дизайнер Форм (Form Designer)

2. Окно Редактора Исходного Текста (Editor Window)

3. Палитра Компонент (Component Palette)

4. Инспектор Объектов (Object Inspector)

5. Справочник (On-line help)

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

 

Окно редактора кода содержит создаваемые пользователем обработчики событий – процедуры, определяющие, как компонент должен реагировать на определенной событие (наведение курсора мыши на объект, щелчок мышью, двойной щелчок и т.д.). Переключение между Дизайнером форм и Редактором кода – F12.

 

Палитра компонентов содержит несколько вкладок (Standard, Additional, System и т. д.). На каждой вкладке расположены ряд компонент, обозначенных пиктограммами и именами, появляющимися в виде подсказки. Эти имена являются официальными названиями компонентов. В действительности это названия классов, описывающих компоненты без первой буквы T (например, если класс называется Tbutton, имя будет Button). Standard. Большинство компонент на этой вкладке являются аналогами экранных элементов Windows (меню, кнопки, полосы прокрутки), но компоненты Delphi обладают также некоторыми удобными дополнительными встроенными возможностям.

 

Каждый компонент имеет свойства, которые устанавливаются в окне Инспектора Объектов (Object Inspector) на вкладке Properties, и связанные с ним обработчики событий, которые устанавливаются в окне Object Inspector на вкладке Events.

 

Программирование событий

 

Для создания нового проекта необходимо:

1) выполнить команду File -> New -> Application for Win32.

Для сохранения созданного проекта необходимо:

1) создать папку для файлов программы. Т.к. файлов несколько, НИКОГДА не сохранять проект без папки;

2) File -> Save Project as. Сохранять в папку. При этом сначала появляется диалог для сохранения модуля, затем – проекта программы. Название проекта и модуля можно менять только при первом сохранении.

3) Для сохранения внесенных изменений: File -> Save all.

После сохранения в папке появляются несколько файлов - *.dpr – файл проекта, *.pas – файл модуля, *.dfm – файл формы.

Для открытия проекта необходимо:

1) File -> Open (File -> Open Project).

2) При открытии выделить файл проекта (*.dpr).

Запустить программу на исполнение можно 3 способами:

1) F9;

2) Run -> Run;

3) на панели инструментов.

 

TLabel (расположен на вкладке Standard) служит для отображения текста на экране.

    Свойства класса TLabel
Название Тип Описание
Caption String текст надписи
Autosize Boolean определяет возможность подбора ширины компонента автоматически (при true) или вручную (при false)
Font   группа свойств, определяющих параметры шрифта надписи
Top Integer координата сверху
Left Integer координата слева
Color Color цвет фона

 

  Обработчики событий
Название Описание
OnMouseMove Действие происходит при перемещении курсора мыши над объектом

TButton (расположен на вкладке Standard) - кнопка с текстовой надписью.

    Свойства класса TButton
Название Тип Описание
Caption String текст на поверхности кнопки
Height Integer высота компонента
Width Integer ширина компонента
Top Integer координата сверху
Left Integer координата слева

 

  Обработчики событий
Название Описание
OnClick Действие щелчке по объекту

 

Задание.

 

Создать проект следующего вида:

При щелчке мышью по кнопке «ВВЕРХ» (метод OnClick) надпись «Delphi - это сила!» должна перемещаться вверх на 10 пискелей (свойство Top), а при щелчке по кнопке «ВНИЗ» - на 10 пикселей вниз. При наведении курсора мышки на надпись (метод OnMouseMove) она должна стать невидимой (свойство Visible).

 

Выполнение задания

 

1) Создать новый проект (команда File -> New -> Application). Сохранить его (File -> Save Project as) в папке Lab1.

2) Разместить на форме компоненты: Label и два Button.

3) Изменить свойства Caption у обоих компонентов и Font у компонента Label.

4) Создать обработчики событий для кнопок (действие должно происходить при щелчке по кнопке – событие OnClick, для создания обработчика события нужно дважды щелкнуть по кнопке на форме).

Для кнопки ВВЕРХ:

Для кнопки ВНИЗ:

5) Сохраните проект и проверьте его работу.

 

Задание для самостоятельной работы.

Создать проект следующего вида:

 

При щелчке мышью по кнопке «ВЛЕВО» (метод OnClick) надпись «Я люблю Delphi!» должна перемещаться влево на 10 пискелей (свойство Left), а при щелчке по кнопке «ВПРАВО» - на 10 пикселей вправо. При наведении курсора мышки на надпись (метод OnMouseMove) она должна поменять цвет на красный (свойство Font.color).

 

КОНТРОЛЬНЫЕ ВОПРОСЫ:

1) Перечислите основные составные части среды программирования Delphi и их назначение.

2) Как создать новый проект?

3) Как сохранить созданный проект?

4) Почему сохранять проект можно только в отдельную папку?

5) Какие файлы создаются при сохранении проекта?

6) Как открыть созданный ранее проект?

7) Как запустить проект на исполнение?

8) Назовите назначение, основные свойства и методы компонента Label.

9) Назовите назначение, основные свойства и методы компонента Button.


Лабораторная работа № 2

Компонент Edit

 

Теоретический материал

TEdit (расположен на вкладке Standard)

Компонент предназначен для ввода и редактирования одной строки текста.

    Свойства класса TEdit
Название Тип Описание
MaxLength Integer Ограничивает максимально допустимое коли­чест­во символов в вводимой строке.
ReadOnly Boolean Возможность редактирования.
Text String Строка текста.
SelText String Выделенный текст.
SelStart Integer Номер первого символа в выделенном тексте.
SelLength Integer Длина выделенного текста.

 

    Методы класса TEdit
Название Тип Описание
Clear procedure Удаляет строку из поля ввода.
CopyToClipBoard procedure Копирует выделенный текст в буфер.
PasteFromClipBoard procedure Вставляет текст из буфера в позицию курсора или вместо выделенного текста.
CutToClipBoard procedure Копирует выделенный текст в буфер, а затем удаляет его из поля ввода.

 

StrToInt

IntToStr

StrToFloat

FloatToStr

 

Задание.

 

Создать проект калькулятора. Запрограммировать обработчики событий нажатий на кнопки. Предусмотреть деление на ноль.

 

Выполнение задания:

1) Создать новый проект (команда File -> New -> Application). Сохранить его (File -> Save Project as) в папке Lab2.

2) Расположить на форме указанные компоненты.

3) Изменить свойства компонентов:

 

Название компонента Свойство Значение
Label 1 Caption X
Font.Size  
Label 2 Caption Y
Font.Size  
Label 3 Caption Z
Font.Size  
Label 4 Caption  
Autosize False
Color clWhite
Edit 1 Text  
Edit 2 Text  
Button 1 Caption +
Button 2 Caption -
Button 3 Caption *
Button 4 Caption /

 

4) В событиях OnClick каждой кнопки опишите соответствующие действия, например, для кнопки код события должен выглядеть следующим образом:

 

 

Обратите внимание, что в данном действии осуществляется проверка деления на ноль. Оператор ShowMessage выдает сообщение, представленное на рисунке в случае, когда Y равен "0".

 

Для кнопки код события должен выглядеть следующим образом:

Для остальных кнопок запишите обработчики событий аналогично примеру.

5) Сохраните проект и проверьте его работу.

 

Задание для самостоятельной работы.

1) Создайте кнопку для нахождения значений функции Z=2X+Y2.

2) Создайте кнопку для нахождения значений функции Z=X! При этом в поле Y копируйте значение X.


Лабораторная работа №3

Компоненты Memo, СheckBox, RadioGroup

 

Теоретический материал

TMemo (расположен на вкладке Standard) - служит для ввода многострочного текста до 32 Kb.

    Свойства класса TMemo
Название Тип Описание
Lines TStrings Текст в поле

 

  Методы класса TMemo
Название Описание
Clear Удаляет текст из поля ввода.

 

TRadioGroup (расположен на вкладке Standard)

Компонент представляет собой панель с расположенными на ней радиокнопками. Только одна из радиокнопок может быть выделена.

    Свойства класса TRadioGroup
Название Тип Описание
Items TStrings Список названий радиокнопок.
ItemIndex Integer Порядковый номер выделенной радиокнопки.

 

 

TCheckBox (расположен на вкладке Standard)

Компонент реализует элемент управления – флажок.

    Свойства класса TCheckBox
Название Тип Описание
Checked Boolean Определяет, установлен флажок или сброшен.
AllowedGrey Boolean Определяет, может ли флажок находиться в третьем состоянии – закрашенным в серый цвет.
State TCheckBox State Состояние флажка: cbUnchecked – сброшен, cbChecked – установлен, cbGrayed – закрашен в серый цвет.

 

Задание.

Создать проект, позволяющий форматировать текст, вводимый и отображаемый в компоненте Memo.

 

Выполнение задания

1) Создать новый проект (команда File -> New -> Application). Сохранить его (File -> Save Project as) в папке Lab3.

2) Расположите на форме указанные компоненты.

3) Задайте свойства компонентов:

Компонент Свойство Значение
Form1 Caption Форматирование текста
Memo1 Lines  
GroupBox1 Caption Стиль начертания
CheckBox1 Caption жирный
CheckBox2 Caption курсив
RadioGroup1 Caption Цвет
Items черный зеленый
ItemIndex  

4) Создать процедуру, позволяющую установить выбранный стиль шрифта при щелчке по CheckBox1:

 

Обратите внимание, что при щелчке по CheckBox2 должны проверяться те же самые условия, поэтому обработчик события будет аналогичным:

 

6) Создать процедуру, позволяющую установить выбранный цвет:

7) Сохраните проект и проверьте его работу.

 

 

Задание для самостоятельной работы

1) Добавить ещё один CheckBox который будет отвечать за подчеркнутый стиль шрифта.

2) Добавить ещё одну кнопку в RadioGroup для синего цвета.

3) Добавить ещё один компонент, чтобы пользователь мог устанавливать размер шрифта (10, 12, 14 или 16). Используйте для этого компонент RadioGroup.

 


Лабораторная работа № 4

Компонент StringGrid

 

Теоретический материал

 

TStringGrid (расположен на вкладке Additional)

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

    Свойства класса TStringGrid
Название Тип Описание
Col LongInt Индекс текущего столбца.
Row LongInt Индекс текущей строки.
ColCount LongInt Количество столбцов в таблице.
ColWidths[Index] Integer Ширина столбца с индексом Index.
EditorMode Boolean Возможность редактирования ячеек.
FixedColor TColor Цвет фиксированной области.
FixedCols Integer Количество зафиксированных столбцов.
FixedRows Integer Количество зафиксированных строк.
RowCount LongInt Количество строк в таблице.
RowHeight[Index] LongInt Высота строки с индексом Index.
Cells[ACol, ARow] String Содержимое ячейки с координатами (ACol, ARow).
Cols[Index] TStrings Столбец с индексом Index.
Rows[Index] TStrings Строка с индексом Index.
Objects[ACol, ARow] TObject Объект, связанный с ячейкой (ACol, ARow).
DefaultColWidth Integer Значение ширины столбца по умолчанию.
DefaultRowHeight Integer Значение высоты строки по умолчанию.
ScrollBars TScrollStyle Полосы прокрутки: ssNone – отсутствуют, ssHorizontal – горизонтальная, ssVertical – вертикальная, ssBoth – обе.

 

Задание. Сортировка линейного массива методом простого выбора

 

Создать в среде DELPHI проект, позволяющий сформировать массив заданной размерности (от 2 до 20 элементов) случайным образом и отсортировать его по возрастанию.

 

 

Выполнение задания

1) Создайте новый проект (команда File -> New -> Application). Сохраните его (File -> Save Project as) в папке Lab4.

2) Разместите на форме компоненты StringGrid1, StringGrid2, SpinEdit1 (вкладка Samples), Label1, Label2, Label3, Button1, Button2.

3) Задайте свойства компонентов:

Компонент Свойство Значение
Form1 Caption Сортировка массива
Label1 Caption Введите размерность массива
Label2 Caption Исходный массив
Label3 Caption Отсортированный массив
Button1 Caption Формирование массива
Button2 Caption Сортировка
StringGrid1, StringGrid2 ColCount  
RowCount  
FixedCols  
FixedRows  
DefaultColWidth  
DefaultRowHeight  
SpinEdit1 MinValue  
MaxValue  

4) В раздел Var добавьте описание глобальных переменных a, i, j, t, n:

 

5) Создайте процедуру для формирования массива (обработчик события OnClick для Button1):

 

6) Создайте процедуру для сортировки массива (обработчик события OnClick для Button2):

 

7) Запустите проект на исполнение и проверьте его работу, задавая различную размерность массива.

8) Сохраните проект и проверьте его работу.

 

Задание для самостоятельной работы.

Доработайте данный проект следующим образом:

1) разместите на форме компонент RadioGroup, позволяющий выбрать одно из направлений сортировки: по возрастанию или по убыванию.

2) разместите на форме компоненты CheckBox1 и CheckBox2. При установке флажка в CheckBox1 должны сортироваться элементы массива с четными индексами. При установке флажка в CheckBox2 должны сортироваться элементы массива с нечетными индексами. При установке обоих флажков должны быть отсортированы все элементы массива.

 


Лабораторная работа №5

Компоненты MainMenu и компоненты вкладки Dialogs

 

Теоретический материал

TMainMenu (расположен на вкладке Standard)

Компонент представляет собой меню, расположенное в верхней строке окна.

    Свойства класса TMainMenu
Название Тип Описание
Items TMenuItem Элемент меню.
Caption String Название пункта меню. Символ "&" перед каким-либо символом названия пункта меню выделяет этот символ подчеркиванием. При нажатии Alt-подчеркнутый символ вызывается данный пункт меню. Для создания разделительной полосы между пунктами меню введите символ "-".
Checked Boolean Возможность появления галочки или точки (если входит в состав радиогруппы) слева от названия пункта меню.
Enabled Boolean Доступность пункта меню.
Items[Index] TMenuItem Подменю.
GroupIndex Byte Номер радиогруппы, к которой принадле­жит пункт меню.
RadioItem Boolean Принадлежность радиогруппе.
Visible Boolean Видимость пункта в меню.
ShortCut Word Соотносит пункту меню комбинацию клавиш.

 

TOpenDialog, TSaveDialog (расположены на вкладке Dialogs)

Диалоги открытия и сохранения файлов.

    Свойства классов TOpenDialog и TSaveDialog
Название Тип Описание
DefaultExt String Расширение по умолчанию, добавляется к выб­ран­но­му файлу.
FileName String Имя последнего файла из списка выбранных в диалоге.
Files TString Список файлов, выбранных в диалоге.
Filter String Маска отбора файлов в диалоге.
FilterIndex Integer Фильтр отбора файлов по умолчанию
InitialDir String Каталог, к которому диалог обращается при открытии.
Title String Заголовок диалога.

Маска фильтра состоит из двух частей, разделенных вертикальной чертой. Первая часть содержит название фильтра, а вторая – маску файла. Например,

'Модули проекта | *.pas'.

Несколько фильтров разделяются вертикальной чертой. В одном фильтре можно отбирать файлы с различными расширениями. Пример более сложного фильтра:

'Графические файлы | *.bmp; *.jpg; *.gif; *.pcx | PCX–файлы | *.pcx'.

 

TFontDialog (расположен на вкладке Dialogs)

Диалог установки параметра шрифта.

    Свойства класса TFontDialog
Название Тип Описание
Font TFont Содержит параметры шрифта.

Компоненты диалогов не являются визуальными. Для того чтобы вызвать диалоговое окно, необходимо вызвать метод Execute, после вызова которого появляется диалоговая форма. Если пользователь выбрал один или несколько файлов, или выбрал цвет, или выбрал параметры шрифтов и затем нажал кнопку "OK", то функция возвращает значение true. Если пользователь нажал кнопку "Cancel", то функция возвращает значение false.

    Методы классов диалогов
Название Тип Описание
Execute: Boolean function Вызывает окно диалога.

 

Задание.

 

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

 

 

Выполнение задания

1) Создайте новый проект (команда File -> New -> Application). Сохраните его (File -> Save Project as) в папке Lab5.

2) Расположите на форме указанные компоненты.

3) Создайте главное меню следующего вида:

Для создания меню необходимо дважды щелкнуть по значку MainMenu, в появившемся окне ввести название первого пункта меню и нажать Enter. После этого можно вводить пункты меню ниже или правее. Чтобы создать горизонтальную черту, вместо названия нужно ввести тире (-).

У компонента Memo1 свойство Align (расположение) установите в alClient.

 

4) Запрограммируйте кнопку Новый (чтобы создать обработчик события для пункта меню, дважды щелкните по нему).

 

Запрограммируйте кнопку Открыть.

 

Запрограммируйте кнопку Сохранить.

 

Запрограммируйте кнопку Выход.

 

Запрограммируйте кнопку Отменить.

 

Запрограммируйте кнопку Выделить все.

 

Запрограммируйте кнопку Копировать.

 

 

Запрограммируйте кнопку Вырезать.

 

Запрограммируйте кнопку Вставить.

 

Запрограммируйте кнопку Шрифт.

 

Запрограммируйте кнопку Переносить по словам.

5) Сохраните проект и проверьте его работу.

 

 

Задание для самостоятельной работы

1) Запрограммируйте кнопку О программе так, чтобы выводилось сообщение«Простейший текстовый редактор».

2)Запрограммируйте кнопку Автор так, чтобы выводилось сообщениес информацией о вас.

3) Добавьте в меню Правка ещё один пункт - Очистить и запрограммируйте его так, чтобы текстовое поле очищалось.


Лабораторная работа № 6

Компонент Timer

 

Теоретический материал

TTimer (расположен на вкладке System)

Компонент реализует функции системного таймера. Это невизуальный компонент. После того как в свойстве Enabled будет установлено значение true, компонент переходит в режим ожидания сообщений от системного таймера. Сообщения от системного таймера приходят через промежутки времени, равные значению, установленному в свойстве Interval. После получения сообщения вызывается событие OnTimer, после обработки которого компонент опять переходит в режим ожидания следующего сообщения от системы. Этот процесс продолжается, пока в свойстве Enabled не будет установлено значение false.

    Свойства класса TTimer
Название Тип Описание
Enabled Boolean Позволяет получать сообщения от системного таймера.
Interval Integer Интервал времени, через который вызывается событие OnTimer. Значение 1000 равняется одной секунде.

 

Задание.

 

Создать проект «Поймай кнопку». После запуска приложения по форме перемещается кнопка случайным образом. Необходимо «поймать» ее щелчком мыши. После этого выводится сообщение о победе.

 

Выполнение задания

1) Создайте новый проект (команда File -> New -> Application). Сохраните его (File -> Save Project as) в папке Lab6.

2) Расположите на форме указанные компоненты.

3) Создайте главное меню по образцу и установите следующие свойства компонентов:

Компонент Свойство Значение
Form1 Caption Поймай кнопку
Timer1 Interval  
Button1 Caption жми сюда

 

4) Создайте обработчик события по созданию формы (OnCreate):

 

5) Запрограммируйте пункт меню Старт:

 

6) Запрограммируйте пункт меню Сброс:

 

7) Запрограммируйте выбор пункта меню Выход:

 

8) Запрограммируйте изменение положения кнопки через заданный интервал времени:

 

9) Запрограммируйте щелчок мышью по кнопке Button1:

 

10) Сохраните проект и проверьте его работу.

 

Задание для самостоятельной работы.

Доработайте проект следующим образом:

поместите на форму компонент ScrollBar1 (вкладка Standart) и предусмотрите возможность с его помощью изменять скорость перемещения кнопки.

 

Справка: ScrollBar


 

Лабораторная работа № 7

Графические возможности Delphi.

Компоненты Image, Shape, OpenPicrureDialog, SavePictureDialog, ColorBox, Combobox.

 

Теоретический материал

TImage (расположен на вкладке Additional)

Компонент представляет собой картинку.

    Свойства класса TImage
Название Тип Описание
Autosize Boolean Определяет, будут ли размеры компонента изменяться в соответствии с размерами рисунка.
Picture TPicture Рисунок.
Stretch Boolean Определяет, будут ли размеры рисунка изменяться в соответствии с размерами компонента.
Transparent Boolean Определяет, будет ли фон рисунка прозрачным.

 

TShape (расположен на вкладке Additional) - служит для отображения простейших графических объектов на форме: окружность, квадрат и т.п. (Shape).

 

TComboBox (расположен на вкладке Standard)

Компонент представляет собой раскрывающийся список.

    Свойства класса TComboBox
Название Тип Описание
Items TStrings Строки списка.
ItemIndex Integer Номер выбранной строки.
Style TComboBoxStyle Стиль: csDropDown – раскрывающийся список и поле ввода, csSimple – поле ввода с обычным списком, csDropDownList, – раскрывающийся список без поля ввода.

 

 

Задание.

 

Создать проект, позволяющий просматривать и редактировать рисунки, а также просматривать простейшие геометрические фигуры

 

 

Выполнение задания

1) Создайте новый проект (команда File -> New -> Application). Сохраните его (File -> Save Project as) в папке Lab7.

2) Разместите на форме указанные компоненты. Установите следующие свойства компонентов

Компонент Свойство Значение
Label1 Caption Рисунок
Label2 Caption Простая фигура
ComboBox1 Items квадрат круг
Image1 AutoSuze true
Stretch false

 

3) Создайте главное меню формы

 

4) Запрограммируйте выбор пункта меню Открыть:

5) Запрограммируйте выбор пункта меню Сохранить:

6) Запрограммируйте выбор пункта меню Выход:

7) Запрограммируйте выбор цвета для рисования с помощью компонента ColorBox1 (событие onChange):

8) Запрограммируйте установку графического указателя при нажатии клавиши мыши в пределах компонента Image1 (событие onMouseDown):

9) Запрограммируйте рисование линии при нажатии левой клавиши мыши и ее перемещении по компоненту Image1 (событие onMouseMove):

10) Запрограммируйте выбор простой геометрической фигуры с помощью компонента ComboBox1 (событие onChange):

11) Сохраните проект и проверьте его работу.

 

Задание для самостоятельной работы

Доработайте проект следующим образом:

1) добавьте в список ComboBox1 новые пункты: прямоугольник и эллипс и предусмотрите возможность изображения этих фигур;

2) запрограммируйте закраску фигуры Shape1 цветом, выбранном в компоненте ColorBox1;

3) добавьте на форму две кнопки Button1 и Button2. При щелчке мышью по Button1 размеры компонента Shape1 увеличиваются вдвое, а при щелчке по Button2 – уменьшаются вдвое.

 

 


Лабораторная работа №8

Классы и модули

 

Теоретический материал

 

Модули и программы

 

Приложение Delphi создается из файлов двух разных видов. Это один файл программы (*.dpr) и один или несколько модулей (*.pas).

Файл программы является основным – он связывает воедино все модули. Просмотреть содержимое файла программы можно, выполнив команду Project -> View Source. Как правило, код программы генерируется автоматически, поэтому многие начинающие программисты его не замечают.

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

 

Модули

 

Приложения Delphi интенсивно используют модули. За каждой формой скрывается соответствующий ей модуль. Однако модули не обязаны иметь соответствующие формы.

Модуль состоит из двух основных разделов - interface, где объявлено все, что доступно для других модулей (процедуры, функции, переменные) и раздела implementation с реальным кодом процедур и функций.

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

В начале раздела interface может находиться предложение uses. Оно указывает к каким другим модулям мы должны получить доступ из раздела interface текущего модуля. Если же на другие модули необходимо сослаться из кода подпрограмм и методов, вы должны добавить новое предложение uses в начале раздела implementation.

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

Чтобы создать новый не относящийся к форме модуль, выберите команду File/New и отметьте на странице New появившегося окна Object Repository элемент Unit.

 

Классы и сокрытие информации

Что такое класс

Класс может содержать сколько угодно данных и любое количество методов. Однако для соблюдения всех правил объектно-ориентированного подхода данные должны быть скрыты, или инкапсулированы, внутри использующего их класса. Использование метода для получения доступа к внутреннему представлению объекта уменьшает риск возникновения ошибочных ситуаций и позволяет автору класса модифицировать внутреннее представление в будущих версиях. В Object Pascal имеются две различные конструкции, подразумевающие инкапсуляцию, защиту и доступ к переменным: классы и модули. С классами связаны некоторые специальные ключевые слова – спецификаторы доступа:

♦ private – элементы интерфейса класса видны только в пределах модуля, в котором определен класс. Вне этого модуля private-элементы не видны и недоступны. Если в одном модуле создано несколько классов, то все они видят private-разделы друг друга.

♦ Раздел public не накладывает ограничений на область видимости перечисленных в нем полей, методов и свойств. Их можно вызывать в любом другом модуле программы.

♦ Раздел published не ограничивает область видимости, однако в нем перечислены свойства, которые должны быть доступны не только на этапе исполнения, но и на этапе конструирования программы. Раздел published используется при разработке компонентов. Без объявления раздел считается объявленным как published. Такой умалчиваемый раздел располагается в самом начале объявления класса любой формы и продолжается до первого объявленного раздела. В раздел published среда помещает описание вставляемых в форму компонентов. Сюда не нужно помещать собственные элементы или удалять элементы, вставленные средой.

♦ Раздел protected доступен только методам самого класса, а также любым потомкам, независимо от того, находятся ли они в том же модуле или нет.

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

 

Информация о типе на этапе выполнения

 

Правило языка Object Pascal о совместимости типов для классов-потомков позволяет вам использовать класс-потомок там, где ожидается класс - предок, обратное невозможно. Теперь предположим, что класс Dog содержит функцию Eat, которая отсутствует в классе Animal.

Если переменная MyAnimal ссылается на объект типа Dog, вызов этой функции должен быть разрешен. Но если вы попытаетесь вызвать эту функцию, а переменная ссылается на объект другого класса, возникнет ошибка. Поскольку компиля



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: