Лабораторная работа 1
.pdfТ.к. в проекте две формы 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