Продолжаем закреплять полученные знания о формах и кнопках и дорабатываем проект “Библиотека” v.2.0
Требования заказчика
Доработать проект Библиотека v.2.0:
- добавить отдельные формы для справочников
- реализовать выгрузку сведений о книгах в формате Excel
Проектирование
В нашем случае проектирование не потребуется, так как требования заказчика очень простые и конкретные, они касаются только внешнего вида приложения и не затрагивают структуры данных или функциональности.
В проекте добавляются ещё две формы: справочник авторов и справочник жанров. А на главной форме необходимо разместить кнопки для вызова этих справочников.
Ещё одна кнопка понадобится для настройки выгрузки данных из основной таблицы в MS Excel.
🔨 Внесите данную информацию в проектную документацию.
Новые формы
Добавьте в проект две формы, установите для них свойства согласно таблице 1.
🔨 Добавьте в проект две формы. Задайте значения ключевым свойствам форм:
Свойство | Форма_1 | Форма_2 | Примечание |
---|---|---|---|
Name | frmAuthor | frmGenre | |
Caption | Авторы | Жанры | |
Width | 200 | 200 | |
Height | 300 | 300 | |
BorderIcons.Minimize | False | False | Убираем кнопку минимизации из заголовка формы. |
ShowOnTaskbar | False | False | При отображении формы на панели приложений не будет появляться отдельная иконка для формы, будет только иконка приложения (основной формы). |
📝 Базовую информацию о форме и её свойствах можно найти в первом проекте.
Теперь перенесем компоненты для отображения табличных данных и с формы frmMain на соотвеnствующие формы. Для этого используем буфер обмена:
- выделяем переносимый элемент
- нажимаем комбинацию клавиш Ctrl + X
- переходим на форму, на которую необходимо перенести компонент
- нажимаем комбинацию клавиш Ctrl +V
Если вы переносите или копируете компоненты на пустую форму, но имена компонентов сохраняются. Если же на форме уже есть другие компоненты, то имена переносимых компонентов устанавливаются по умолчанию. Этот алгоритм обеспечивает уникальность имен компонентов формы, но требует ручной корректировки имен компонентов после копирования или переноса.
🔨 Перенесите таблицу tgrAuthor на форму frmAuthor, а таблицу tgrGenre на форму frmGenre. Задайте значения следующим свойствам таблиц:
Свойство | Значение | Примечание |
---|---|---|
Top | 0 | |
Left | 0 | |
Width | 200 | |
Height | 300 | |
Anchors | [All] | ![]() |
Главная форма
С главной формой тоже немного поработаем: изменим заголовок, цвет и добавим ограничения на минимальный размер.
🔨 Задайте значения свойствам формы frmMain:
Свойство | Значение | Примечание |
---|---|---|
Caption | Библиотека v.2.1 | |
BgColor | clWhite | |
Sizeable | True | |
Height | 400 | |
Width | 800 | |
Constrainst.MinHeight | 200 | |
Constrainst.MinWidth | 300 |
Таблицу с книгами нужно растянуть на всю форму, оставив снизу место для кнопок, которые будут открывать формы справочников.
🔨 Измените свойства таблицы tgrBook:
Свойство | Значение | Примечание |
---|---|---|
Anchors | [All] | |
Top | 0 | |
Left | 0 | |
Height | 360 | 40 пикселей оставим для кнопок |
Width | 800 | |
Constrainst.MinHeight | 200 | |
Кнопки
На главной форме нам понадобятся три кнопки: две для открытия разных форм справочников и одна для выгрузки данных в MS Excel. Кнопки вызова справочников привяжем к нижнему левому краю экрана, а кнопку экспорта – к правому нижнему.
Выберите на панели инструментов компонент “Кнопка” и кликните на нижней части формы, в том месте, где нужно разместить компонент. Настройте свойства компонента. Затем, используя комбинацию клавиш Ctrl+C и Ctrl+V создайте ещё две копии кнопки и настройте те свойства, которые имеют отличия.
🔨 Задайте значения ключевым свойствам кнопок:
☝ Сначала установите свойство Style, а затем меняйте свойства Width и Height.
Свойство | Кнопка_1 | Кнопка_2 | Кнопка_3 | Примечание |
---|---|---|---|---|
Name | btnAuthor | btnGenre | btnExcel | |
Caption | Авторы | Жанры | Экспорт | |
Style | bsCommandLink | bsCommandLink | bsCommandLink | |
Width | 100 | 100 | 100 | |
Height | 40 | 10 | 40 | |
Top | 360 | 360 | 360 | |
Left | 0 | 100 | 700 | |
Anchors | [Left,Botom] | [Left,Botom] | [Right,Botom] | |
Actions | [ПОКАЗАТЬ ФОРМУ] frmAuthor | [ПОКАЗАТЬ ФОРМУ] frmGenre | [ОТКРЫТЬ В EXCEL] tgrBook Auto | |
Icon | Report | Report | Excel | |
ShowHint | True | True | True | |
Hint | Открыть справочник авторов | Открыть справочник жанров | Выгрузить список книг в Excel |
📝 Для того, чтобы работал экспорт, на компьютере, где установлена программа, также должен быть установлен MS Excel. В качестве альтернативы может быть использована программа Calc из пакета OpenOfice.
Закрытие формы клавишей Esc
Для закрытия окна мы будем использовать кнопку со свойством Action = [ЗАКРЫТЬ ФОРМУ]. Воспользуемся тем фактом, что при установке у неё свойства Cancel = True, при нажатии клавиши Esc такая кнопка автоматически будет нажиматься. А саму кнопку мы разместим на форме так, что её не будет видно.
🔨 Добавьте на формах frmAuthor и frmGenre кнопку btnClose:
Свойство | Значение | Примечание |
---|---|---|
Name | btnClose | |
Action | [ЗАКРЫТЬ ФОРМУ] | |
Left | -100 | Так как ширина кнопки 81 пиксель, то при таком значении свойства Left её не будет видно на экране. |
Cancel | True |
Подведение итогов
За несколько минут вы модифицировали проект, добавив несколько форм и настроив кнопки для управления их видимостью.


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