Лекция Паскаль 1 – Создание проекта, создание форм, обработка событий


Тема: Создание простого проекта.

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

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

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

В Главном меню собраны основные управляющие пункты для редактирования и запуска программы.Здесь имеются уже знакомые по работе с другими приложениями группы кнопок Скачать (Open), Сохранить (Save), Изменить (Edit), так и специфические, присущие только языковым средам, например, проект (Project), Запуск (Run), которые определяют режим компиляции и выполнения программы.

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

Палитра компонентов — это многостраничный диалоговый элемент, на каждой закладке которого размещено несколько видеокомпонентов, которые можно переносить на форму.Интерфейс приложения определяется выбором ты или иных компонентов. При проектировании интерфейса приложения действует принцип WYSIWYG (What You See Is What You Get) — «что видите, то и получаете». Поскольку компонентов большое количество, то они размещены в палитре по закладкам — Standard, Dialogs, System … Для того, чтобы поместить компонент на форму, необходимо перейти на нужную страницу, щелкнуть мышкой на выбранном компоненте в палитре, а затем — в нужном месте формы.  Например, нам

необходимо разместить на форме три управляющие кнопки. Для этого с закладки Standard мы, перемещая иконку, переносим на форму три компонента; при этом среда программирования именно пронумерует эти компоненты: Button1, Button2, Button3.

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

Возможно подогнать место размещения компонента с точностью до 1 пиксела с помощью клавиш-стрелок: при нажатой клавише Ctrl происходит смещение компонента, а при нажатой клавише Shift — изменение его размеров.Для некоторых компонентов предусмотрено определение места их размещения на переднем или заднем плане.    выравнивать размещены

компоненты можно либо вручную, либо выделить группу компонентов и воспользоваться командой Edit — Allign

Можно также воспользоваться активацией панели Выравнивание (вызвать контекстное меню и выбрать пункт Align):

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

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

Это важно, например, в том случае, когда Вы сделаете невидимым некоторый объект-контейнер — тогда все подчиненные ему компоненты также станут невидимыми.Таким образом, Вы вынесли на форму кнопку. Посмотрев в окно дерева объектов, легко определить, принадлежит ли она форме, или некотором другом объекта-контейнера. Кроме того, с использованием дерева объектов достаточно удобно перемещать компоненты с одного контейнера в другой с помощью мышки.

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

Читать  Множества в Паскаль – Операции над множествами

С помощью переключателя Code вызывается окно редактора кода, в котором размещается программный код нашей задачи.Его Вы будете вносить самостоятельно. Визуальное программирование только добавляет строки описания в программу по мере выставления компонентов на форму. Однако среда Delphi, безусловно, не может догадаться, какие действия Вы хотите выполнить при нажатии той или иной кнопки, вынесенной на форму, Вы хотите от других компонентов.

Каждый вынесен на форму компонент обладает множеством важных и полезных свойств, значения которых определены по умолчанию, однако могут быть настроены программистом в соответствии с конкретной программой. Список доступных свойств компонентов содержится в окне Инспектора объектов, которое состоит из двух вкладок — Properties (Свойства) и Events (События).

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

2. Программная разработка и файлы, входящие в ее состава.

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

proect1.dpr — главный файл проекта, он формируется системой при создании нового приложении;

unit1.pas — первый модуль (unit) программы, который автоматически появляется в начале работы;

unit1.dfm — файл описания формы, он используется для хранения информации о перечне видеокомпонентов и их размещения на форме;

proect1.res — файл ресурсов, в нем хранятся иконки, растровые изображения, курсоры;

proect1.dof — текстовый файл опций для сохранения настроек, связанных с данным проектом (например, директив компилятора)

proect1.cfg — файл конфигурации, он содержит информацию о состоянии среды.

Кроме перечисленных, к проекту могут относиться файлы с картинками, видеофрагментами, звуками, файлы справочной системы и других. Если хранить проект под другим именем, то, кроме файла проекта, изменят название и файлы с расширениями res, dof, cfg. Если изменить имя файла модуля (pas), то изменится и имя файла описания формы (dfm). Хорошим стилем программирования считается использование имен, которые несут смысловую нагрузку.

После компиляции программы в рабочей папке дополнительно появятся файлы с расширениями:

dcu — откомпилированные модули;

exe — исполняемый файл.

Главный файл проекта является текстовым файлом, который содержит программный код, записанный на языке Object Pascal. Текстовый файл подключает все используемые программные модули и содержит операторы для запуска приложения. При создании нового

приложении Delphi автоматически создает файл проекта. Код файла проекта, содержащий только одну форму, приведены ниже:

В разделе Uses подключается системный модуль Forms и модуль формы Unit1.

Название формы приводится в круглых скобках. Директива компилятора {$ R * .res} осуществляет подключение ресурсов в результирующий ехе-файла.

Тело программы содержит операторы, которые готовят дополнение к работе (инициализируют), создают форму и приступают к выполнению приложении.

В ходе создания новых форм содержимое этого файла изменяется автоматически.

Вручную он корректируется только в исключительных случаях.

При создании приложения Delphi генерирует пустую форму, текст модуля которой приведены ниже:

Модуль начинается с зарезервированного слова Unit, после которого записывается

Читать  Лекция Паскаль 5 – Понятие операции и выражения, Арифметические и строчные операции

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

заголовок;

секция интерфейсных объявлений interface;

секция реализации implementation;

секция инициализации initialization;

секция завершения finalization;

признак завершения текста программы end.

3. Создание проекта, его компиляция, сохранение, выполнения.

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

Для создания нового проекта необходимо выполнить команду File — New — VCL Forms

Application — Delphi for Windows 32

Для загрузки существующего проекта

нужно выполнить команду File — Open Project …

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

Менеджер проекта Project Manager предназначен для управления проектами и составными частями приложения, которое Вы разрабатываете.Менеджер проекта позволяет работать с группой проектов: можно просматривать, добавлять или удалять проекты и их составные части. При добавлении (New) или изъятии (Remove) проектов или их составных частей автоматически вносятся изменения и в соответствующих файлов.

Установить параметры проекта можно в окне Project Options, которое открывается с помощью команды Project — Options:

На странице Forms можно назначить главную форму приложения и выбрать в списке Auto-create forms формы, будут создаваться одновременно с главной.Главная форма открывается первой; ее закрытия приводит к закрытию всего приложения.

На странице Application указывается название и иконка, которые будут отображаться в среде Windows на панели задач, а также файл справки, который подключается к проекту.

На страницах Compiler и Linker устанавливаются директивы компилятора и компоновщика (редактора связей).

Компиляция и сборка проекта могут выполняться на любом этапе его разработки. Под компиляцией понимают получения объектных модулей (dcu-файлов) из исходных текстов программных модулей (pas-файлов). Сборник состоит в получении исполняемого файла с объектных модулей.

В среде Delphi компиляция и сборка проекта совмещены. Для выполнения компиляции достаточно нажать комбинацию клавиш Ctrl + F9. При этом компилируются все выходные модули, содержание которых менялся после последней компиляции. В результате для каждого модуля создается файл с расширением dcu (Delphi Compiled Unit). В дальнейшем среда Delphi компилирует главный файл проекта и компонует с dcu файлов исполняемый файл (ехе-файл), имя которого совпадает с именем проекта.

4. Добавление нескольких строк кода к обработчику события, их анализ.

Наиболее распространенный способ сообщить приложении о возникновении события — это щелкнуть мышкой при работе на любом компоненте. При щелчке мышкой в ​​программе, которая работает, возникает событие OnClick. Если она не обрабатывается программой, щелчок ни к чему не приводит. Чтобы заставить программу реагировать на щелчки, необходимо написать на языке Object Pascal фрагмент программы, который называется обработчиком события. При этом созданный фрагмент должен представлять собой последовательность команд, в которых программист указывает, что именно должна сделать программа в ответ на щелчок мышкой.

Чтобы заставить Delphi самостоятельно сделать заготовку для процедуры обработчика события OnClick, необходимо в момент проектирования приложения дважды щелкнуть на вставленном компоненте. Например, для кнопки Button1 (компонент класса TButton) Delphi активизирует окно кода, в котором можно увидеть следующий фрагмент:

Слово procedure сообщает компилятор о начале метода класса,

реализуется в виде процедуры. За ним следует составное имя, которое содержит имя класса TForm1 и собственное имя метода Button1Click. При этом в верхней части модуля, внутри описания класса (раздел interface), появится строка:

Читать  Алгоритмы и программы с циклами – Средства реализации базовой алгоритмической структуры повторения с предусловием

Procedure Button1Click (Sender: TObject);

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

размеры компоненты, включая и саму форму. Компонент Edit, с помощью которого осуществляется ввод текстовой информации, по умолчанию настроен на обработчик OnChange.

unit Unit1; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;

type

TForm1 = class (TForm) Edit1: TEdit;

Button1: TButton; Timer1: TTimer; Shape1: TShape;

procedure Timer1Timer (Sender: TObject);

procedure Shape1ContextPopup (Sender: TObject; MousePos: TPoint; var Handled: Boolean);

procedure Button1Click (Sender: TObject); procedure Edit1Change (Sender: TObject); private

{Private declarations} public

{Public declarations} end;

var

Form1: TForm1; implementation

{$ R * .dfm}

procedure TForm1.Button1Click (Sender: TObject); begin

end;

procedure TForm1.Edit1Change (Sender: TObject); begin

end;

 

procedure TForm1.Shape1ContextPopup (Sender: TObject; MousePos: TPoint; var Handled: Boolean);

begin end;

procedure TForm1.Timer1Timer (Sender: TObject); begin

end; end.

5. Понятие формы, элемента управления, события, обработчика события. Редактирования кода обработчика события.

Когда программист создает в операционной среде Windows новую программу, говорят, что появляется новое приложение для Windows. Использование слова «приложение» может показаться несколько необычным, но это буквальный перевод с английского Windows application.

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

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

нового приложения (New — Application) первое, что Вы увидите на экране, — это большая заготовка формы с надписью Form1 в заголовке.

Форма представляет собой реализацию окна операционной системы Windows на объектно ориентированном языке программирования. Свойства и события формы, как и других компонентов, можно задавать и изменять с помощью инспектора объектов. Графическое приложение может состоять из нескольких форм, но только одна из них считается главной (главная форма отображается на экране при запуске приложения; закрытия главной формы приводит к завершению работы приложения). Если при размещении видеокомпонентов на форме постоянно переключать окна, следя за изменениями программного кода, то можно увидеть, как в текст программы автоматически добавляются новые строки. Рассмотрим, как пользоваться окном инспектора объектов на следующем примере.

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

Читать  Методические указания часть 1 | Язык программирования "Turbo Pascal"

«Пример».

Решение. В окне инспектора объектов выбираем свойство Color, наряду с которым

размещено поле ввода для редактирования значения параметра (для этого параметра предполагается выбор из меню).

Таким образом, свойство (property) — это элемент компонента или класса, который отвечает за некоторую характеристику элемента или класса (цвет, надпись, размер шрифта и т.д.). Программный запись или считывание информации о свойстве компонента приводят к вызову связанных с ним процедур и функций (методов), которые в явном виде мы не вызывали. Например, при изменении свойства Width (ширина) для некоторого визуального компонента автоматически перерисовывается этот компонент (если этот компонент — форма, то перерисовывается вся форма). Многие свойства компонентов отображаются в инспекторе объектов и могут быть изменены в процессе проектирования. Доступ к некоторым свойств возможен только во время выполнения программы. Среди них могут быть свойства только для чтения, непосредственное изменение которых в программе запрещено.

Выберем в меню поля ввода нужное значение (по условию задачи — clBlack) и форма автоматически станет черного цвета. Аналогичным образом выберем свойство Caption и введем в строку значение слово «Пример» вместо слова Form1. В результате мы получим форму, которая нам нужна была по условию задачи.

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

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

Для каждой предусмотренной события в видеокомпонентов существует метод — процедура, которая описывает, что нужно сделать при наступлении события.

Таким образом, событие (event) — это внешняя управляемая воздействие на компонент, который позволяет связать его с обработчиком события — процедуре, предусмотренной для каждой стандартной ситуации (например, при щелчке мышкой на объекте или при получении компонентом фокуса). Имена событий начинаются с префикса «On». События компонента и связанные с ними обработчики указываются на вкладке Events инспектора объектов.

Метод (method) — это процедура или функция, включенная в описание компонента (класса). Совокупность методов определяет «действия», которые могут выполнять объекты данного класса.

Компонент (component) — это элемент управления видеоприложений. Классы компонентов являются производными базового компонента-предку — класса TComponent. Почти все компоненты, за исключением тех, которые устроены в другие компоненты (например, ToolButton или TabSheet), размещаются в палитре компонентов и могут быть перенесены на форму при проектировании программы.

В названии компонента обычно пренебрегают префикс «Т», который входит во имя соответствующего класса: так, компонент типа TEdit называется просто Edit. Среди компонентов выделяют визуальные компоненты (потомки класса TControl), отображаемых на форме во время выполнения программы, а среди визуальных — оконные компоненты (потомки класса TWinControl), которые могут получать фокус ввода и обрабатывать события, возникшие (например, при нажатии клавиши и щелчке мышкой).

Читать  Порядковые типы в Паскаль

Рассмотрим простейший пример программирования методов для обработки событий. Задания. Есть пустая форма черного цвета с надписью «Пример» в заголовке.

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

«Нажата», а при отпускании кнопки — «Не нажата».

Решение.Для программирования этой задачи нужно перейти на вторую закладку инспектора объектов Events и найти строку OnMouseDown — это метод, который выполняется при нажатии кнопки мыши.

С помощью двойного щелчка мышкой на правом поле в строке OnMouseDown открываем

окно редактирования программного кода. При этом строки программы под названием процедуры и ее операторных скобками begin … end; вписываются автоматически. Остается только дописать строку программы, с помощью которого, согласно условию задачи, присваивается новое значение свойства Caption (заголовок) компонента Form1. Вписываем эту строку:

Аналогичным образом программируем метод OnMouseUp:

Поздравляем! Вы создали первое приложение для Windows! Запустить программу на

выполнения можно, нажав кнопку F9 (Run) или иконку Выполнить .

С целью закрепления материала усложним задачу. Допишем метод, который бы выводил в заголовке формы надпись «Мышка двигается» при перемещении мышки над формой. Этот метод — OnMouseMove:

 

Анализируя результат, обратим внимание на два интересных момента:

Если при запуске программы курсор находился не над формой, то мы можем как угодно двигать мышку, однако надпись «Мышка двигается» не появится (это легко объяснить: написанный нами метод относится только к форме, поэтому событие OnMouseMove генерируется только тогда, когда курсор заходит на форму)

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

6. Теоретические вопросы для самоконтроля.

1. Назовите основные файлы, которые входят в состав проекта.

2. Что значит значок плюс (крестик), который размещается слева от названия свойств объекта в инспекторе объектов?

3. Файлы (с какими расширениями) появляются в рабочей папке после компиляции проекта?

4. Перечислите основные разделы программного кода модуля.

5. Какая информация отображается в окне менеджера проекта (Project Manager)?

6. В каком окне можно изменить картинку (иконку), которая появляется в левом верхнем углу проекта, выполняется?

7. Какие существуют ограничения на имя модуля, записанного после ключевого слова unit?

8. Что произойдет, если при переносе проекта с одной машины на другую потеряется файл с расширением dcu?

9. Как выделить на форме скрытый или визуально трудно искомым видеокомпонентов с помощью окна Tree View?

10. Как с помощью окна Tree View определить, принадлежит ли данная кнопка контейнера-панели?

11. Для которых потребностей служит панель инструментов Align?

12. Что такое обработчик события?

13. Перечислите названия групп обработчиков события по умолчанию для компонентов Form, Edit, Button, Shape, Timer.

14. Что представляет собой приложение? Как создать новое приложение в Delphi?

15. Что такое форма? Назовите ее основные характеристики.

16. Дайте определение терминам «свойство», «событие», «Метод».

17. Что такое компонент?

[Всего голосов: 3    Средний: 5/5]