Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР 1 Разработка консольных и оконных прирложени...doc
Скачиваний:
3
Добавлен:
17.11.2019
Размер:
183.81 Кб
Скачать

Лабораторная работа № 1. Среда программирования Delphi. Обработка одномерных массивов

Цель: Изучить методику разработки приложений в среде IDE Delphi.

Изучить технологии создания консольных и оконных приложений.

Изучить применение динамических массивов в решении прикладных задач.

1. Краткая теория

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

1.1 Разработка консольных приложений в ide Delphi

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

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

File-New-Other – выбрать шаблон Console Appllication

Открывается окно редактора с шаблоном (заготовкой) программы

Рис. 1 Окно консольного приложения

Программа консольного варианта приложения имеет такую же структуру, как в Turbo Pascal. Программа сохраняется непосредственно в одном файле проекта (по умолчанию Project1.dpr).

Для сохранения приложения на диске необходимо в меню выбрать

FileSave Project Asl ,

а затем выбрать каталог и задать имя файла

Для выполнения приложения необходимо в меню выбрать

File - RunRun

или нажать клавишу F9

1.2 Разработка оконных приложений в ide Delphi.

Оконные приложения являются основными видами приложений, запускаемые в операционных системах с графическим интерфейсом, таких как Windows.

IDE Delphi имеет хороший инструментарий для разработки оконных приложений.

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

File-New- Appllication

Будет создан проект, включающий несколько файлов;

- файл проекта (Project1.dpr), представляющий все приложение (его содержимое можно увидеть, выполнив пункт меню ProjectView Source);

- файл Form1.dfm, представляющий основное окно приложения (называется формой); В нем сохраняются настройки формы и ее компонентов (положение, размеры, оформление и т.д.), которые задаются на этапе проектирования в инспекторе объектов. Содержимое файла можно увидеть, если на форме в контекстном меню выбрать пункт «View as Text» (обратно в режим окна можно вернуться, выбрав пункт «View as Form» – Alt-F12)

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

Рис. 2 Окна файлов формы (на переднем плане) и программного модуля

Переключение между файлом-окна и файлом-программным модулем выполняется клавишей F12.

В проект можно добавить новые формы.

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

- На форму из палитры кладутся необходимые компоненты (создается видимая часть окна);

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

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

FileSave Project Asl

а затем выбрать каталог и задать имя файла

Для выполнения приложения необходимо используя меню, выбрать

File - RunRun

или нажать клавишу F9

Пример простого приложения приведен в приложении 1.2

Проектирование формы

В проекте следует использовать основные визуальные компоненты:

  • TForm – окно программы, является контейнером для других компонент программы (автоматически создается при создании нового проекта)

  • TPanel – панель, используется как контейнер и средство группирования элементов управления формы (полей, меток, кнопок)

  • TEdit – поле ввода, используется для ввода скалярных исходных данных («количества элементов массива» и других одиночных данных) и вывода одиночных результатов (не массивов).

  • TLabel – статическая надпись, используется для вывода заголовков и подписей полей ввода

  • TButton – кнопка, используется для выполнения действий в оконном приложении

(например, начать ввод данных, выполнить расчет, перейти к вводу новых данных, завершить программу)

  • TStringGrid – таблица (сетка), используется для ввода, вывода массивов

При расположении элементов (компонентов) на форме и управлении этими элементами в процессе работы приложения необходимо придерживаться следующих правил:

:

  1. На форму положить панели (контейнеры для остальных элементов). Окно должно быть разбито панелями на 3 части:

    • - для ввода начальных данных (количество элементов массива, границы отрезка и т.д)

    • - для ввода исходного массива

    • - для вывода результатов

При размещении компонентов в окне формы использовать свойства автоматического позиционирования объектов: Align (примыкание к границам контейнера: Left –левой, Right – правой, Top-к верхней, Bottom – к нижней, alClient – занятие всего свободного пространства), Anchors (фиксация положения относительно границ контейнера)

Рис.3 Пример расположения компонентов на форме

  1. В каждый момент должна быть доступна только одна часть (панель)

а) При запуске программы должна быть доступна панель для ввода начальных данных (другие панели должны быть не видимы)

Рис.4 Вид формы при запуске приложения

Эти действия (выполняемые операторами программы) можно добавить в обработчик события открытия формы. Для этого в инспекторе объектов необходимо в выпадающем списке выбрать объект-формы Form1. Перейти на закладку Events, найти свойство OnShow и справа в пустом поле сделать двойной щелчок мышью. В программном модуле будет добавлен шаблон процедуры обработчика:

procedure TForm1.FormShow(Sender: TObject);

begin

// операторы, выполняющие необходимые действия

// при открытии формы

end;

б) После ввода начальных данных и нажатия кнопки «Ввод массива» (щелчке по ней мышью) необходимо:

  • Сделать первую панель недоступной,

  • Сделать вторую панель видимой и доступной.

  • Таблица должны настраиваться на заданный размер массива, т.е. количество колонок в таблице должно быть равно N.

  • В заголовках колонок должны отображаться номера вводимых элементов.

Рис.5 Вид формы при вводе исходного массива

Эти действия необходимо добавить в обработчик события «щелчок» по кнопке. Для этого в инспекторе объектов необходимо в выпадающем списке выбрать объект-кнопку (допустим кнопке «Ввод массива» соответствует объект Button1). Перейти на закладку Events, найти свойство OnClick и справа в пустом поле сделать двойной щелчок мышью (можно на форме сделать двойной щелчок по кнопке). В программном модуле будет добавлен шаблон процедуры обработчика:

procedure TForm1.Button1Click(Sender: TObject);

begin

// операторы, выполняющие необходимые действия

// при щелчке по кнопке Button1

end;

в) При нажатии кнопки «Изменить исходные данные» необходимо:

  • Сделать вторую панель невидимой

  • Сделать первую панель доступной

  • Установить фокус на первое поле

г) После ввода исходного массива и нажатия кнопки «Вып.расчет» необходимо:

  • сделать вторую панель недоступной,

  • выполнить расчет,

  • сделать видимой третью панель и вывести в ней результаты:

элементы массива-результата в компонент-таблица (таблица должна содержать число колонок, соответствующее размерности массива),

скалярные переменные в компонент-поле.

Рис.6 Вид формы при отображении результатов

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

Настройка визуальных компонент

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

TForm

Свойство Caption – задает текст заголовка окна

Необходимо в обработчиках событий записать операторы выполнения основных действий:

а) на событие OnShow(открытие формы) предусмотреть настройку элементов формы:

- видимость (свойство Visible). Видимость определяется двумя значениями: true –компонент видим, false – компонент не видим;

- доступность, т.е. возможность работать с элементами (свойство Enabled). Также определяется двумя значениями: true –компонент доступен, false – не доступен:

- установку фокуса (курсора ввода) на поле ввода (метод setFocus).

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

Например,

Panel1.Visible:=true - делает панель Panel1 и все лежащие на ней элементы невидимыми

Edit1.setFocus - устанавливает курсор (фокус ввода) на компонент Edit1

б) на событие OnCloseQuery (перед закрытием формы)

Запрос необходимости закрытия программы

TPanel

Свойство Caption (текст на панели)- следует очистить

TEdit

Свойство Text – значение введенное в поле ввода. Оно имеет тип String. Если поле содержит числовое значение, то для использования его в расчетах необходимо выполнить преобразование, использовав функции StrToInt – в целое значение, StrToFloat – в вещественное значение.

Если числовой ответ необходимо записать в поле, то необходимо выполнить обратное преобразование в строковое значение, используя функции IntToStr, FloatToStr.

Например,

a) Var N: integer;

N:=StrToInt(edN.Text);

В этом фрагменте программы выполняется присвоение целочисленной переменной N значения, записанного в поле ввода с именем edN.

б) edSred.Text:=FloatToStr(Sr);

В этом фрагменте программы выполняется вывод вещественной переменной Sr в поле ввода с именем edSred.

TLabel

Свойство Caption – задает текст метки (подписи)

TButton

Обработчик события OnClick задает действия, которые необходимо выполнить при нажатии кнопки

Например, сделаем панели Panel2 и Panel3 невидимыми, панель Panel1 доступной и установим фокус ввода в поле edN:

Panel2.Visible:=false;

Panel3.Visible:=false;

Panel1.Enabled:=true;

edN.setFocus;

TStringGrid

Таблица состоит из строк Row колонок Col, на пересечении которых находятся ячейки Cells.

Свойство ColCount – задает количество колонок таблицы

Свойство RowCount – задает количество строк таблицы

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

Свойство FixRowsзадает количество начальных строк, недоступных для ввода (используются для вывода заголовков)

Свойство Options.goEditing (true/false)– задает возможность ввода данных в ячейки

Свойство Cells[i,j]задает ячейку таблицы. Первый индекс i – задает номер колонки (начинается с нуля), второй индекс j – задает номер строки (начинается с нуля). Значение в ячейке имеет тип String, а потому для их использования необходимо выполнять преобразования с помощью функций:

- при чтении из таблицы в массив StrToInt/StrToFloat (в зависимости от типа элементов)

- при записи в таблицу из массива IntToStr/FloatToStr.

Более подробное описание компонентов оконного приложения можно найти в приложении 1.3