Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
21
Добавлен:
18.03.2016
Размер:
921.96 Кб
Скачать

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

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

Procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Form2.showmodal;

end;

Для объявления модуля unit2 в модуле unit1 следует объявить его в разделе реализации

Для этого следует воспользоваться командой главного меню:

и в диалоговом окне выбрать имя модуля, с которым

хотим связать наш текущий модуль.

 

 

Нам необходимо связать

Form1

с

Form2

В модуле

unit1

 

unit2

Implementation

 

Implementation

uses unit2;

 

 

uses unit1;

т.е. прописываем в модуле формы связи с другими модулями.

Создадим обработчик закрытия Form2 по нажатию кнопки Закрыть

форму

procedure TForm2.Button2Click(Sender: TObject); begin

Form2.Close;

end;

Сохранить проект и откомпилировать

Самостоятельно добавить на форму1 кнопку для завершения приложения.

Элегантный метод завершения приложения

Application.Terminate;

Самостоятельно измените в проекте назначение главной формы проекта (Form2 – main form), а форма 1 – должна вызываться по нажатию кнопки.

Просмотреть директорию с сохраненными в ней файлами.

Охарактеризовать каждый модуль, его назначение

Открыть проект двумя способами

Практическое задание 2

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

Воспользуемся таймером TTimer (вкладка System палитры компонент). Interval оставим без изменения (1 сек.).

В обработчике запрограммируем произвольное изменение положения кнопки на форме. Разберѐмся, что нам нужно:

1)Позиция кнопки на форме. За положение отвечают свойства Left и Top, которые указывают положение левого верхнего угла кнопки относительно левого верхнего угла формы. Именно этим свойствам мы будем присваивать произвольные значения.

2)Каков будет диапазон для генерации случайных чисел? Очевидно, что кнопка не должна уйти за границы формы. Значит, нам нужно подключить размеры самой формы, т.е. еѐ высоту и ширину. В данном случае будем использовать не Width и Height, а ClientWidth и ClientHeight, так как в первые свойства входят заголовок и границы формы, а это лишние пиксели, за которые кнопка может вылезти. Однако и это ещѐ не всѐ - из этих размеров мы должны вычесть соответственно ширину и высоту самой кнопки, иначе она может частично скрыться за границами.

Случайные числа

Зачем нужны случайные числа?

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

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

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

В Pascal (и Delphi соответственно) случайные числа генерируются функцией Random. Функция принимает один параметр, да и тот необязательный. Этот параметр позволяет указать границу диапазона, из которого будет выбрано случайное число.

Итак: Random([Range: Integer]).

Если Range указан, то число выбирается из диапазона 0 <= X < Range (X - само случайное число, которое будет получено).

Обратите внимание, что сама граница в диапазон не включается, т.е. Random(10) никогда не выдаст число 10, хотя 0 - запросто. Если диапазон не указан, то он считается равным единице, т.е. 0 <= X < 1.

3) обработчик события по таймеру:

procedure TForm1.Timer1Timer(Sender: TObject); begin

Button1.Left:=Random(ClientWidth-Button1.Width); Button1.Top:=Random(ClientHeight-Button1.Height)

end;

4) Запускаем программу и наблюдаем.

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

Отчего это происходит? Дело в том, что числа, выдаваемые функцией Random() на самом деле не являются случайными - они псевдослучайны, т.е. наблюдается повторение.

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

procedure TForm1.FormCreate(Sender: TObject); begin

Randomize;

end;

Теперь кнопка будет прыгать совершенно по разным точкам при каждом запуске программы.

Задачи для самостоятельного выполнения:

1.Создать приложение, которое при нажатии левой кнопки мыши перекрашивает форму в красный цвет. Создать обработчик события OnClick для формы.

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

RGB(Red, Green, Blue) и Random(256).

3.Создать приложение, в котором при нажатии на левую кнопку мыши происходит смена цвета с зеленого на красный, и, наоборот, с красного на зеленый.

Контрольные вопросы:

1.Что такое среда программирования?

2.Назовите 3 принципа ООП. В чем заключается использование этих принципов?

3.Назовите панели меню, которые могут располагаться на рабочем столе

Delphi.

4.Какие окна располагаются на рабочем столе Delphi?

5.Что такое свойство?

6.Что такое метод?

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

8.Какие компоненты называются стандартными? Назовите их основные свойства.

9.Что такое комбинация клавиш быстрого вызова?

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

11.Какой командой среды Delphi или комбинацией клавиш можно завершить зависшее приложение?

12.Какой командой можно создать новое приложение?

13.Через какую команду можно поменять иконку проекта (изображение .exe

файла)?

14.Главная форма проекта, ее назначение и как назначить в проекте главную форму (main form)?

15.Какие пиктограммы содержит стандартная панель инструментов?

16.Как программист может манипулировать раскладкой рабочего стола? Создайте собственную раскладку, сохраните ее и присвойте ей собственное имя.

17.Компоненты VCL размещаются на формах. Форма является разрабатываемым пользовательским интерфейсом. Как по умолчанию называется форма? Как добавить в проект новую форму? Как удалить форму из проекта?

18.Для создания несложных пользовательских интерфейсов используются 5 простых компонентов Delphi: формы, надписи, поля ввода, области просмотра и кнопки. На какой вкладке палитры эти компоненты представлены и как их разместить на форме? Как изменить размер компонента? Как переместить его в другое место? Как удалить компонент с формы? Как создать копию компонента? Как разместить сразу несколько одинаковых компонентов на форме?

19.Если свойство объекта в инспекторе объекта отображено красным цветом, что это означает?

20.Какие свойства отвечают за длину и ширину объекта?

21.Какая группа свойств отвечает за шрифт?

22.Для чего нужно свойство Сaption?

23.Как выбрать двумя способами свойства или события компонента, размещенного на форме, чтобы изменить что-либо в инспекторе объектов?

24.Как можно перемещать фрагменты текста программного кода?

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

среда программирования

класс

свойства

метод

событие

элемент управления

объект

компонент

Приложение 1

Панель инструментов

Панели инструментов находятся под главным меню в левой части главного окна, представлены на рисунке 1, и содержат пятнадцать кнопок для вызова наиболее часто используемых команд главного меню, например, File/Open (Файл/Открыть) или Run/Run (Выполнение/Выполнить).

Рисунок 1 – Панели инструментов

Вызвать многие команды главного меню можно также с помощью комбинаций клавиш, указываемых справа от названия соответствующей команды. Например, команду Run/Run можно вызвать с помощью клавиши <F9>, a команду View/Units. (Просмотр/Модули) – с помощью комбинации клавиш <Ctrl>+<F12>.

Всего имеется 5 панелей инструментов:Standard (Стандартная);

Custom (Пользователя);View (Просмотра);Desktop (Рабочий стол);Debug (Отладки).

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

С помощью контекстного меню можно также управлять видимостью Component Palette (Палитры компонентов).

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

Список команд панелей инструментов представлен в таблице 1.

Таблица 1 – Список команд панелей инструментов

Команда

 

Описание

 

 

 

File \ New

File \ Open File

File \ Save File

File\ Save All

File \ Open Project

Предоставляет доступ к репозиторию Объектов

Открывает существующий файл

Выполняет сохранение активного документа

Сохраняет все файлы проекта

Позволяет вызвать созданный ранее проект программы

Команда

 

Описание

 

 

 

Project \ Add to Project

Project \ Remove from Project

Help \ Contents

View \ Units

View \ Forms

View \ Toggle Form/Unit

File \ New Forms

Run \ Run

Run \ Program Pause

Run \ Trace Into

Run \ Step Over

Предлагает добавить файл к проекту

Удаляет файл из проекта

Активизирует встроенную справочную службу

Выбирает форму из списка форм проекта

Задает форму из списка форм для редактирования

Переключается между окном кода программы и окном формы

Создает новую форму и добавляет ее к проекту

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

Делает паузу в работе отлаживаемой программы

Выполняет пошаговую трассировку программы с входом в вызываемые подпрограммы

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

Приложение 2

Палитра компонентов

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

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

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

Рисунок 1 – Палитра компонентов

Первоначально Палитра компонентов имеет следующий набор страниц:

Standard – стандартная; Additional – дополнительная;

Win32 – 32-разрядного интерфейса Windows; System – доступа к системным функциям;

Data Access – работы с информацией из баз данных;

Data Controls – создания элементов управления данными;

ADO – связи с базами данных с использованием объектов данных ActiveX; Interbase – обеспечения непосредственного доступа к одноименной базе

данных;

InternetExpress – создания одноименных приложений, которые являются одновременно приложением-сервером и приложением-клиентом распределенной базы данных;

FastNet – обеспечения протоколов доступа к сети Интернет; Decision Cube – многомерного анализа;

QReport – составления отчетов;

Dialogs – создания стандартных диалоговых окон; Win 3.1 – интерфейса Windows 3-х;

Samples – поставляемая вместе с системой примеров; ActiveX – компонентов ActiveX;

Servers – оболочки VCL для общих серверов СОМ.

28

Страница Standart

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

Компонент

 

Тип

 

 

 

Frame

фрейм

MainMenu

главное меню

PopupMenu

всплывающее меню

Label

метка

Edit

окно редактирования

Memo

многострочное окно редактирования

Button

командная кнопка

Checkbox

контрольный индикатор с флажком

RadioButton

радиокнопка

Описание

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

Позволяет конструировать и создавать полосу главного меню формы и выпадающие меню. Компонент невизуальный.

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

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

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

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

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

Позволяет пользователю включать и выключать различные опции. Компонент визуальный.

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

29

окно списка

редактируемый описок

линейка прокрутки

групповое окно

группа радиокнопок

панель

список событий

ListBox

ComboBox

Scrollbar

GroupBox

RadioGroup

Panel

(форме, панели и т.п.). Компонент визуальный.

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

Объединяет функции ListBox и Edit. Пользователь может либо ввести текст, либо выбрать его из списка. Компонент визуальный.

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

Является контейнером, объединяющим группу связанных органов управления, таких как радиокнопки RadioButton, контрольные индикаторы Checkbox и т.д. Компонент визуальный.

Является комбинацией группового окна GroupBox с набором радио кнопок RadioButton; служит специально для создания групп радиокнопок. Можно размещать в компоненте несколько радиокнопок, но никакие другие оргаыы управления не разрешены. Компонент визуальный.

Является контейнером для группирования органов управления и меньших контейнеров. Панель можно использовать также для построения полос состояния, инструментальных панелей, палитр инструментов. Компонент визуальный.

Обеспечивает диспетчеризацию ActionList событий компонентов. Компонент

невизуальный.

Страница Additional

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

30