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

Вид материалаЛабораторная работа

Содержание


Окно Описания Структуры TreeView
Окно Инспектора Объектов
Окно Формы с именем “Form1”
Окно Редактора Кода с именем “Unit1.pas”
Подобный материал:
Delphi 7

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

Компоненты Label, EditBox, Button.
  1. Запуск Delphi 7

После запуска Delphi на экране появятся четыре окна:
  • Главное окно с именем “Delphi 7 – Project1”;
  • Окно Описания Структуры TreeView;
  • Окно Инспектора Объектов (Object Inspector) и их свойств;
  • Окно Формы с именем “Form1”;
  • Окно Редактора Кода с именем “Unit1.pas”.




Главное окно с именем “Delphi 7 – Project1”:


    • Расположено в верхней области экрана.
    • Содержит:
      • Строку меню, которая содержит как общие для различных приложений пункты такие как Файл, Правка,…, Окно, Справка, так и специфические Проект, Компонент, Базы данных…
      • Панель инструментов, которая расположена ниже меню слева и содержит набор кнопок. Кнопки панели предоставляют быстрый доступ к нескольким особенно полезным пунктам меню для повышения эффективности работы (Создать, Открыть, Запустить, Трассировка и т.д.)
      • Палитру компонентов, которая расположена ниже меню и справа от панели инструментов. Она состоит из нескольких страниц с вкладками, в каждой из которых объединены компоненты, предназначенные для конкретных областей применения. Каждый элемент палитры представляет собой функционирующую подпрограмму, которую можно вставить щелчком левой клавиши мыши в создаваемое приложение. Это может быть готовая кнопка, полоса прокрутки и т.д. Каждая из страниц имеет свой заголовок. Чтобы выяснить назначение кнопки с пиктограммой, следует задержать на ней курсор мыши - появится поле помощи с именем, используемым для данного компонента.



Окно Описания Структуры TreeView



    • Расположено в левой части экрана ниже панели инструментов.
    • Позволяет видеть структуру создаваемой формы.



Окно Инспектора Объектов



    • Расположено в левой части экрана ниже окна описания струтуры.
    • Позволяет видеть и изменять характеристики (свойства) объектов проекта.
    • Содержит две вкладки:
      • Вкладка Свойства (Properties) содержит таблицу, состоящую из двух столбцов. В левом столбце дается имя свойства, а в правом – его значение. Ряд значений может оказаться первоначально пустым. Каждая строка этой таблицы представляет собой одно свойство компонента. Подсказку по любому свойству можно получить, выбрав это свойство и нажав клавишу .
      • Вкладка События (Events) задает реакции программы на различные события.



Окно Формы с именем “Form1”



    • Расположено в правой части экрана ниже палитры компонентов.
    • Это место, где осуществляется визуальное программирование, а нужные компоненты выбираются из палитры компонентов. По умолчанию оно имеет серый фон, покрытый регулярно расположенными точками. В этом окне необходимо расположить компоненты интерфейса: кнопки, меню, списки, переключатели и другие компоненты. Подобно любому окну Windows , окно формы можно перемещать и изменять его размеры.



Окно Редактора Кода с именем “Unit1.pas”




    • Расположено в правой части экрана ниже палитры компонентов под окном формы.
    • Состоит из двух панелей:
      • Просмотрщика классов (вначале работы мы им пользоваться не будем и его можно закрыть щелчком по соответствующей кнопке в правом верхнем углу панели)
      • Редактора исходного текста, который предназначен для создания кода программы на языке Pascal. Первоначально Delphi формирует в нем шаблон кода. Код является модулем Pascal с именем Unit1.pas по умолчанию.


2. Создание проекта

В Delphi программный код всегда привязывается к какому-либо событию, которое является сигналом к началу работы алгоритма.

Основополагающей идеей программирования в системе Delphi является следующее: программы управляются событиями.

Реализация этой идеи предусматривает этапы:
      • Сначала проектируется экранная форма
      • Затем устанавливаются события, которые будут происходить в работающем приложении
      • Только потом программируются действия, связанные с этими событиями.


2.1. Сохранение проекта

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

В качестве примера создадим простое приложение, которое позволит:
  • Ввести температуру, выраженную в градусах по шкале Цельсия,
  • Преобразовать введенное значение в градусы, выраженные в шкалах Реомюра и Фаренгейта.

Создание нового проекта следует начинать с выбора в меню команды

File

New

Application

Файл

Новый

Приложение


Целесообразно сразу сохранить создаваемый проект в отдельной папке, например Delphi_lab. При сохранении проекта Delphi создает несколько файлов. Одни из них содержат описание проекта в целом, другие – описания программных модулей и форм.

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

File

Save All

Файл

Сохранить Все


Или нажать горячие клавиши Shift + Ctrl + S


Или щелкнуть по пиктограмме Сохранить Все / Save All на панели инструментов.


В появившемся диалоговом окне Сохранить Unit1 как / Save Unit1 As
  • Выбрать созданную папку или создать новую
  • Заменить имя программного модуля Unit1 на уникальное более информативное, например Grades_.pas. (Расширение .pas указывать не обязательно, оно добавляется автоматически.)





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





Его также следует заменить на уникальное (например, Grades), но без символа «_», так как имена проекта и программного модуля не должны совпадать.


2.2. Создание экранной формы

Форма – основная единица визуального программирования, это графическое представление окна Windows – приложения вместе с его содержанием (один проект может использовать несколько форм). Форма служит основой программы. Каждая форма в период выполнения программы соответствует отдельному окну. Работа над новым проектом начинается с создания стартовой формы – окна, которое появляется при запуске приложения.

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

Как указывалось выше, свойства перечислены на вкладке Свойства (Properties) окна Инспектора Объектов и их свойств. В левой колонке перечислены имена свойств, в правой – их значения. Можно вносить изменения, вводя новые значения в правую колонку. Щелкните на вкладке Свойства (Properties) и с помощью полосы прокрутки просмотрите все свойства формы. Если попробовать выбирать различные свойства, можно заметить различия в способах отображения их значений.

По умолчанию Delphi в качестве заголовка окна формы проекта Grades использует Form1. Целесообразно изменить его на уникальное имя.

Для этого нужно:
  • Щелкнуть на вкладке Свойства (Properties) в верхней ее части,
  • В Инспекторе Объектов (Object Inspector) найти свойство Caption (Заголовок),
  • Щелкнуть на этом свойстве для его активизации,
  • Набрать желаемый текст, например «Переводы градусов».

Заголовок окна формы изменяется уже в процессе ввода. Можно не завершать ввод нажатием клавиши (в этом случае поле ввода будет подсвечено еще раз).

Размеры формы в пикселях можно установить, используя свойства Width (ширина) и Height (высота).

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

У формы (и у других объектов) могут быть вложенные свойства. Перед их названиями стоит знак «+». После двойного щелчка на имени вложенного свойства появляется список уточняющих свойств. При этом знак «+» заменяется на «-».

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

Перечисленные свойства определяют внешний вид формы. Внутри же кода Pascal обращение к форме для управления ею осуществляется по имени, заданному свойством Name (имя). Активизируем это свойство и зададим ему значение GradeC. Чтобы не потерять выполненные назначения, сохраним проект:

File

Save

Файл

Сохранить


Мы назначили следующие свойства формы:


Свойство

Обозначение

Значение

Имя формы

Name


GradeC

Заголовок

Caption

Переводы градусов

Ширина

Width

380

Высота

Height

300

Цвет фона

Color

clBtnFace

Шрифт

Font.Name

MS Sans Serif

Размер шрифта

Font.Size

8


Теперь попробуем запустить форму:

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

или выбрать команду Запуск/ Запуск (Run) в меню,

или щелкнуть на кнопку с зеленым треугольником на панели инструментов.



На экране появляется изображение обычного окна Windows с заданными выше свойствами. Можно изменять размеры окна и перемещать его по экрану стандартным способом.

Для завершения программы нужно:

Дважды нажать на кнопку системного меню (значок левее заголовка формы),

или нажать клавиши +,

или щелкнуть на кнопке закрытия в правом верхнем углу окна.

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


2.3. Компоненты формы

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

Поэтому большая часть работы по созданию и компоновке программ в Delphi сводится к

выбору компонентов,

размещению их на экране с помощью мыши

и определению их свойств.

Чтобы разместить на форме компонент, необходимо на палитре компонентов



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

В результате этих действий на форме появится компонент стандартного размера.

Программа перевода градусов из одной шкалы в другую должна получать от пользователя исходные данные – градусы Цельсия. Как известно, в Windows данные вводятся в поля редактирования с клавиатуры. Поэтому на форму нужно поместить компонент управления и редактирования Edit, находящийся на вкладке Standart.

Установим курсор на компонент Edit (пиктограмма с двумя маленькими буквами «ab»). Этот компонент позволяет пользователю прочитать или записать одну строку текста ( по умолчанию длиной до 255 символов). Щелкнем левой клавишей мыши на указанной пиктограмме. Визуально пиктограмма станет «углубленной». Далее переместим указатель мыши в верхний левый угол окна формы и снова щелкнем левой клавишей мыши. Компонент появится на форме.



Очистим поле компонента с помощью свойства Text.



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

Для этого надо
  • щелкнуть на изображении компонента,
  • установить курсор на одном из его маркеров,
  • нажать левую клавишу мыши и,
  • удерживая ее нажатой, изменить положение границы компонента,
  • затем отпустить клавишу мыши.

При этом Delphi отображает текущие размеры компонента.

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

В процессе перемещения Delphi будет указывать текущие значения верхнего левого угла компонента (свойства Left и Top).

Кроме компонента Edit окно формы должно содержать поясняющий текст рядом сполем редактирования. Текст, расположенный на форме, называется меткой (Label) или этикеткой. Метка в палитре компонентов представлена пиктограммой с буквой «А».

Добавим четыре метки на форму. Первая будет задавать текст над полем редактирования. Остальные три послужат для вывода результатов.

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



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

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

Caption: «Задайте градусы по шкале Цельсия».

Размер метки устанавливается автоматически, если свойство

AutoSize (автоматический подгон размера): True (Истина)



Если же текст должен занимать несколько строк, то надо вручную установить размер метки, а значения свойств задать:

AutoSize (автоматический подгон размера): False (Ложь)

WordWrap (перенос слов): True (Истина)

Далее добавим на форму командную кнопку (на ее пиктограмме изображено «OK»). Поместим ее в правый нижний угол и установим свойство

Caption: «Перевести».




2.4. Событие и обработчик события

Теперь после создания интерфейса нужно написать программу, которая выполнит запланированные действия :
  • Введет исходные данные
  • Сделает преобразования
  • Выведет результат

Следует иметь в виду, что после того, как программа для Windows загрузилась в память и выполнила некий код инициализации, она ничего не делает. Ничего не произойдет, пока не случится некоторое Cобытие (event). Поэтому вместо перечня инструкций (операторов), принятого при линейном программировании, программа на Delphi содержит набор алгоритмов, определяющих ее действия для различных событий.

Внешний вид создаваемой формы должен подсказывать, как работает приложение. Очевидно, что пользователю нужно ввести температуру в градусах Цельсия в поле редактирования и щелкнуть на кнопке «Перевести». Щелчок левой клавишей мыши на изображении кнопки «Перевести» - это пример события в Windows. Событием называется то, что происходит во время выполнения приложения. В Delphi у стандартных событий есть стандартные имена. Щелкните на вкладке События и с помощью полосы прокрутки просмотрите все стандартные события формы. Например, событие, соответствующее одному щелчку клавишей мыши, имеет имя OnClick, а двойному щелчку мыши - OnDblClick.

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

Для написания кода обработчика нужно выделить объект (кнопка «Перевести»). Далее на

Вкладке Cобытия (event) окна Инспектора Объектов (Object Inspector) выбрать событие OnClick и дважды щелкнуть на правом столбце указанного события. В результате открывается окно Редактора Кода с именем (в нашем случае Grades_) и макетом процедуры-обработчика события.




Delphi автоматически образует имя процедуры обработки события как комбинацию двух частей, разделенных точкой. Первая часть идентифицирует форму, содержащую объект, для которого создается обработчик, вторая идентифицирует сам объект и событие. Для нашего примера имя формы GradeC, имя командной кнопки «Перевести») Button1 (установлено по умолчанию в свойстве Name объекта), имя события Click (без букв On). Автоматически на странице События (Events) появится сформированное имя процедуры в строке события OnClick.

Теперь в окне Редактора Кода после заголовка процедуры


procedure TGradeC.Button1Click(Sender: TObject);


нужно объявить используемые переменные:


var

Celsius : real ; // градусы по Цельсию

Fahrenheit : real; // градусы по Фаренгейту

Reaumur : real ; // градусы по Реомюру


Здесь в разделе var описаны три переменные Celsius, Fahrenheit и Reaumur, которые обозначают градусы по шкалам Цельсия, Фаренгейта и Реомюра соответственно.

Между операторными скобками begin end в разделе операторов следует написать операторы языка Pascal, реализующие процедуру обработки события.

Для перевода градусов из одной шкалы в другую следует использовать соотношения:

10 R=5/4 0 C, ноль градусов совпадает у обеих шкал,

10 F=5/9 0 C, ноль градусов соответствует 32 0 F,

100 0 C=212 0 F.


Код процедуры для события Click кнопки «Перевести»:





Исходные данные программа получает из поля редактирования обращением к свойству Text. Это свойство содержит строку символов, поэтому получить действительное число можно с помощью функций StrToFloat или Val.


Celsius:=StrToFloat(Edit1.Text);


Значение температуры проверяется на значение абсолютного нуля:


if Celsius <= -273.15

then


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


ShowMessage('Температура'+Edit1.Text+

' градусов Цельсия не существует);


В коде некоторые свойства меток Caption заданы как пустые строки.


Label2.Caption:=' ';

Label3.Caption:=' ';

Label4.Caption:=' ';


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

Если введенное значение температуры выше абсолютного нуля, то вывод информации осуществляется путем присвоения свойству Caption соответствующих меток вычисленных значений в виде текстов сообщений (для этого используется обратная функция FloatToStr). Одна метка дублирует заданное значение по шкале Цельсия.


Label2.Caption:=Edit1.Text+' градуса(ов)'+

' по шкале Цельсия равны;


Две другие метки применяются для вывода результатов вычислений. Предварительно по формулам вычисляются значения температур для шкал Фаренгейта и Реомюра. Каждый результат в коде представлен в виде двух строк. Для перехода на другую строку служит код #13:


Fahrenheit:=1.8 *Celsius+32;

Label3.Caption:=' '+FloatToStr(Fahrenheit)+

' градусам'+#13+по шкале Фаренгейта';


Reaumur:=4/5*Celsius;

Label4.Caption:=' '+FloatToStr(Reaumur)+

' градусам'+#13+'по шкале Реомюра';


В коде программы используется комментарий – две наклонные черты, - действие которого распространяется до конца строки.

В конце программы поле Edit.Text очищается:


Edit1.Text := ' ';


Ряд свойств устанавливается не только на этапе проектирования, но и во время выполнения программы.

Можно изменять цвет фона и цвет символов при выполнении программы. Для этого можно внести следующие изменения в программу: в ветви else сразу после begin напишем два оператора присваивания:


Label2.Color := clBlack; // цвет фона

Label2.Font.Color := clRed; // цвет символа


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


Button1.Left := 80;

Button1.Height := 50;

Button1.Width := 150;

2.5. Запуск приложения из среды Delphi

Компиляция. Ошибки, предупреждения и подсказки.

После завершения набора кода и сохранения проекта приложение можно откомпилировать.

Для установки режима компиляции необходимо:
      • В меню Инструменты (Tools) выбрать команду:

Опции среды (Environment Options)
      • В открывшемся диалоговом окне Опции среды в группе Компиляция и запуск (Compiling and Running)установить флажок:
  • Показывать работу компилятора (Show compiler process)
  • Нажать кнопку OK.

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

выбрав в меню Проект (Project) команду Компилировать Grades (Compile Grades)

или

нажав клавиши +.

В результате этих действий на экране появится окно Compiling:

В разделе Готово: (Done) появляется либо текст «Откомпилировано» (Compiled), либо сообщение о наличии ошибок.

Если при компиляции обнаружены ошибки:



В этом окне указываются
  • Советы (Hints),
  • Предупреждения (Warnings),
  • Ошибки (Errors).

При наличии ошибок процесс компиляции останавливается и в нижней части окна выводятся сообщения об ошибках. Этих сообщений не меньше двух, так как второе содержит информацию о невозможности генерации исполняемой программы (Фатальная ошибка – Fatal Errors). Пример фатальной ошибки – отсутствие символа «;» в конце оператора: edit1.Text := ' '



Предупреждение – менее серьезное событие по сравнению с ошибкой, но и оно может в итоге привести к неправильным результатам. Выделение оператора в качестве комментария: // Celsius:=StrToFloat(Edit1.Text); приведет к предупреждению:



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

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

www :real; то появится такая подсказка:



Сообщение об успешной компиляции приложения:



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




Пустые строки и строки описания переменных точками не обозначаются, так как никаких действий не выполняют. Точками отмечены также начало (begin) и конец (end) логического блока, поскольку при этом выполняется ряд специфических действий.

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


Запуск приложения. Ошибки времени выполнения.

Запустить приложение можно и не завершая работу с Delphi. Для этого следует выполнить одно из трех действий:

Нажать клавишу

Выбрать команду Запуск (Run) в пункте меню Запуск

Щелкнуть левой клавишей мыши на кнопке с зеленым треугольником на панели инструментов.

Результат начала работы приложения:



На экране появится окно приложения (форма с расположенными на ней компонентами). После задания температуры в поле ввода



и нажатия кнопки «Перевести» на форме в полях меток будут размещены результаты перевода:



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

Заметим, что после запуска программы окно Инспектора Объектов (Object Inspector) и их свойств исчезает перед появлением формы «Переводы градусов». Когда программа активна, в заголовке главного окна Delphi появляется дополнительное слово [Запущено] (Running):




Ошибки времени выполнения возникают во время выполнения программы.

В примере такая ошибка может возникнуть при задании градусов по шкале Цельсия значением, в котором целая часть от дробной части отделена точкой (а не запятой):




Это связано со стандартной установкой для России.

При этом будет выдано «Недопустимое значение данных с плавающей точкой»:





Для продолжения работы программы надо в окне с сообщением об ошибке нажать кнопку OK, а затем выполнить команду Запуск (Run) и восстановить окно Grades. После этого появится другое окно, в котором ошибка описана в упрощенном виде:





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


Ошибка времени выполнения также может возникнуть, например, в операторе

Reaumur:=4/5*Celsius; при ошибочной замене операции умножения делением, т.е. Reaumur:=4/5/Celsius; при Celsius=0. В этом случае возникает ошибка «Деление на ноль данных с плавающей точкой»:





При возникновении ошибки времени выполнения целесообразно воспользоваться командой Сброс программы (Program Reset) из меню Запуск (Run) или комбинацией клавиш +.