Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
часть2.doc
Скачиваний:
17
Добавлен:
24.08.2019
Размер:
892.42 Кб
Скачать

7. Характеристики окна формы бд

Выключатель Generate a main form (Создать главную форму) указывает на необходимость сделать создаваемое окно формы БД основным в проекте.

Группа Form Generation (Содержание формы) определяет, где должны находиться создаваемые неотображаемые компоненты Tabel (Query) и DataSource. Для этого предлагается выбрать один из следующих вариантов:

Form Only (Создание только формы) - будет создано только одно окно формы БД, и в нем будут отображены все объекты.

Form and DataModule (Создание формы и окна «DataModule») - будет создаваться окно формы БД с отображаемыми компонентами и дополнительное окно «DataModule» c неотображаемыми объектами.

При создании формы БД в нее будет добавлен объект Navigator.

Для запуска процедуры создания окна с формой БД и завершения работы с экспертом требуется нажать кнопку Finish (Закончить). После создания формы БД ее можно далее корректировать обычными способами.

Редактор полей (Fields Editor) и поле набора данных (Класс TField)

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

Проектирование меню

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

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

Элемент меню класса TMenuItem

Элемент меню может представлять собой либо подменю, либо команду, либо разделительную линию. К какой категории относится конкретный элемент, зависит от его характеристик. Несмотря на это, любой элемент меню принадлежит к одному и тому же классу – TmenuItem, и каждый может рассматриваться как самостоятельное меню.

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

Для того, чтобы элемент меню представлял собой разделительную линию, следует его свойству Caption задать значение «-».

Элементы меню могут объединяться в группы. Информация о принадлежности элементов к группам может использоваться при слиянии меню нескольких форм и при использовании взаимосвязанных элементов меню. При этом группы элементов меню должны идти в определенном порядке – по возрастанию их номеров.

Характеристики элемента меню задают его внешний вид и место в структуре меню. Среди его свойств отметим следующие:

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

Caption свойство типа string, содержащее текст элемента меню. Здесь можно задать клавишу быстрого перехода с помощью символа &, помещаемого перед соответствующим символом текста.

Checked свойство логического типа, определяющее, является ли элемент меню отмеченным (если имеет значение True, элемент помечается «галочкой»).

Default – свойство логического типа; если оно имеет значение True, текст элемента меню выделяется полужирным шрифтом, а двойное нажатие мышью старшего элемента приводит к появлению у текущего элемента события OnClick. По умолчанию имеет значение False.

Enabled – свойство логического типа; если оно имеет значение True, элемент меню реагирует на события от мыши и клавиатуры (элемент меню разрешен).

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

Items[Index] – свойство-массив типа TMenuItem (индекс Index – целого типа), задающее младшие элементы меню по отношению к текущему элементу. Число элементов определяется свойством Count. Нумерация начинается с нуля и используется только для чтения.

MenuIndex – свойство целого типа, содержащее индекс текущей компоненты в списке Items старшей компоненты.

RadioItem – свойство логического типа; если оно имеет значение True, элемент меню выполняет роль переключателя, т.е. помеченным может быть только один элемент одной группы.

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

Visible – свойство логического типа; если оно имеет значение True, элемент меню отображается на экране, если False – нет.

В классе TMenuItem определено одно событие – OnClick.

Класс имеет ряд методов, в основном связанных с корректировкой структур.

Add(Item) – процедура, добавляющая элемент Item (класса TMenuItem) в список младших элементов.

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

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

Можно эту операцию осуществить и на стадии выполнения программы, но, сделать это несколько труднее. Для этой цели можно воспользоваться специальными стандартными подпрограммами, позволяющими выполнять различные преобразования (ShortCut, ShortCutToKey, ShortCutToText, TextToShortCut).

Главное меню Main Menu

Обычно главное меню формируется на стадии проектирования. С этой целью следует воспользоваться компонентой Main Menu из страницы Standart палитры компонент, а затем применить свойство Items. При активизации мышью этого свойства открывается конструктор меню (работа с ним будет описана ниже). Характеристики элементов меню задаются с помощью инспектора объектов. При необходимости (например, для создания подменю) используется локальное меню конструктора.

Можно создать меню или отдельные его элементы и на стадии выполнения программы. Для этого нужно использовать следующие стандартные функции: NewItem, NewLine, NewSubMenu, NewMenu.

Локальное меню Popup Menu

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

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

Локальное меню класса TPopupMenu, так же как и главное меню, является потомком класса TMenu. В свою очередь, в классе TPopupMenu вводятся новые характеристики, среди которых отметим следующие свойства:

Alignment – свойство типа TPopupAlignment, которое определяет расположение локального меню относительно курсора мыши.

AutoPopup – свойство логического типа. Если свойство имеет значение True, локальное меню появляется при нажатии правой клавиши мыши, если имеет значение False, меню не появляется (в этом случае следует использовать метод Popup).

OnPopup – событие, возникающее при выводе локального меню на экран путем нажатия правой клавиши мыши (если свойство AutoPopup имеет значение True) или вызова метода Popup. Это единственное событие, которое обрабатывает локальное меню.

Popup(X, Y) – процедура, выводящая на экран меню, при этом координаты его верхнего левого угла равны X и Y.

На стадии проектирования локальное меню создается так же, как и главное меню. В форме размещается компонента Popup Menu из страницы Standart палитры компонент. Далее активизируется его свойство Items и с помощью конструктора меню набирается структура меню. Завершается создание локального меню привязкой его к конкретному элементу управления (элементам управления) через свойство PopupMenu элемента управления.

Для создания локального меню на стадии выполнения программы можно использовать стандартную функцию NewPopupMenu.

Для формирования открытого массива Items элементов меню здесь также можно воспользоваться стандартными функциями NewItem, NewLine и NewSubMenu.

Конструктор меню

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

При создании нового главного меню в инспекторе объектов появляется информация, соответствующая новому создаваемому элементу меню. В этой информации важным является свойство Caption, куда следует поместить название элемента, которое будет отображаться на экране. При вводе этого названия наряду с остальными можно использовать и буквы кириллицы. Перед какой-либо буквой можно поставить символ &, задающий клавишу быстрого перехода. Здесь же можно задать и клавиши быстрого управления, позволяющие выполнять определенную для этого элемента команду. Для названий подменю главного меню клавиши быстрого управления не отображаются, однако выполняют свои функции.

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

Для удаления любого элемента меню или даже группы элементов следует выполнить команду Delete.

Все изменения главного меню сразу же отражаются на его виде, появляющемся в форме.

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

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

Завершается работа с конструктором меню закрытием его окна.

Использование запросов при проектировании приложений

При работе с БД широко применяется понятие запроса к ней. Под запросом понимается требование совершить определенное действие с информацией из БД. Можно выбрать данные в соответствии с заданным условием и отобразить результат – запрос на выборку. Можно также вставить, удалить, обновить определенные записи в БД, используя соответствующие запросы. Такие требования формируются на специальных языках программирования QBE и SQL. SQL нашел более широкое распространение, в Delphi его можно использовать при создании приложения для работы с БД.

SQL-запрос

На языке SQL можно создать запросы различных типов:

  • запрос на выборку данных;

  • запрос на добавление;

  • запрос на обновление;

  • запрос на удаление.

SQL-запрос, созданный с помощью DBD, помещается в файл с расширением sql.

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