Смекни!
smekni.com

Разработка базы данных (стр. 9 из 20)

Объект DataSetFindNext категории DataSet предназначен для поиска следующей существующей в БД записи по атрибутам, заданным в действии DataSetFind. Обработка действия осуществляется методом TMainForm.DataSetFindNextExecute. Алгоритм работы метода следующий. Из полей ввода формы FindForm процедурой FindForm.GetLocateParams считываются значения – атрибуты искомой записи. Затем они передаются стандартному методу поиска TIBDataSet.LocateNext, который осуществляет поиск и возвращает указатель на искомую запись. Так как данное действие может повторяться подряд большое количество раз, то для ускорения его активизации предусмотрена горячая клавиша F3.

Объект DataSetFilter категории DataSet предназначен для локальной фильтрации записей БД по задаваемым атрибутам. Обработка действия осуществляется методом TMainForm.DataSetFilterExecute. В ходе выполнения метода активизируется форма FilterForm. И на её обработчики событий возлагается вся дальнейшая работа по фильтрации записей.

Объект DataSetAll категории DataSet предназначен для отмены локальной фильтрации записей БД. Обработка действия осуществляется методом TMainForm.DataSetAllExecute, в котором сбрасывается флаг фильтрации Filtered объекта IBDataSet1, используемого для доступа к БД.

Объект FileDataBasePath категории File предназначен задания пути к файлу БД. Обработка действия осуществляется методом TMainForm. FileDataBasePathExecute. В ней активизируется диалоговое окно задания маршрута, и затем обработчиками событий этой формы выполняются все необходимые действия. После закрытия диалогового окна, происходит обновление данных путём вызова метода TMainForm.DataSetRefrashExecute.

Объект FileUser категории File предназначен задания пути к файлу БД. Обработка действия осуществляется методом TMainForm. FileUserExecute. В ней активизируется диалоговое окно задания пользователя программы, и затем обработчиками событий этой формы выполняются все необходимые действия. После закрытия диалогового окна, происходит попытка установить соединение с БД с новыми параметрами (имя и пароль пользователя) при помощи вызова метода DataModule1.Connect. Праметры пользователя считываются из соответствующих полей ввода формы UserForm. Если соединение неудачно, то приложение автоматически прекращает свою работу, иначе данные в таблице обновляются путём вызова метода TMainForm.DataSetRefrashExecute. Далее при помощи метода DataModule1.SetAccess устанавливается уровень доступа данного пользователя к БД (чтение/изменение или только чтение). В зависимости от уровня доступа становятся доступными или недоступными действия вставки (DataSetInsert), изменения (DataSetUpdate) и удаления (DataSetDelete) записей БД.

Объект FileExit категории File предназначен для завершения работы приложения. Он является стандартным предопределённым объектом Delphi.

Объект HelpAbout – единственный объект категории Help предназначен для активизации информационного окна программы. Это осуществляется путём вызова метода TMainForm.HelpAboutExecute.

Объект OptColor категории Options предназначен для задания цвета фона сетки БД, поля ссылок и полей редактирования. Это осуществляется путём вызова метода TMainForm.OptColorExecute. В нём сначала активируется стандартный диалог выбора цвета ColorDialog1, а затем выбранный цвет присваивается соответственным свойствам упомянутых объектов.

Объект OptFont категории Options предназначен для задания шрифта сетки БД, поля ссылок и полей редактирования. Это осуществляется путём вызова метода TMainForm.OptFontExecute. В нём сначала активируется стандартный диалог выбора шрифта FontDialog1, а затем выбранный шрифт присваивается соответственным свойствам упомянутых объектов.

Объект OptConfDel категории Options предназначен для включения/выключения запроса на подтверждение удаления записи БД. Обработка действия осуществляется методом TMainForm.OptConfDelExecute. При его вызове изменяется значение флага подтверждения удаления ConfirmDelete на противоположное. Для того чтобы объект переходил из выбранного в невыбранное состояние автоматически его свойство AutoCheck установлено в True.

Объекты SortByNum, SortByAut, SortByTit, SortByLan, SortByNo категории SortBy предназначены для задания поля БД, по которому осуществляется сортировка таблицы. Обработка всех действий осуществляется методом TMainForm.RefreshExecute. Для перехода объекта из выбранного в невыбранное состояние автоматически его свойство AutoCheck установлено в True.

Объекты SortdirInc и SortDirDec категории SortDir предназначены для задания направления сортировки БД (по возрастанию или по убыванию). Обработка этих действий осуществляется методом TMainForm.RefreshExecute. Для автоматического перехода объекта из выбранного в невыбранное состояние его свойству AutoCheck присвоено логическое значение True.

Компонент AplicationEvents1 типа TAplicationEvents – основной обработчик событий приложения. В данном приложении на него возложена обработка события OnHint – активизация подсказки. Обработка осуществляется методом TMainForm.ApplicationEvents1Hint, где в строку состояния программы подставляется текущая подсказка приложения, которая в свою очередь берётся из свойства Hint компонента, над которым в данное время расположен курсор.

Компоненты ColorDialog1 типа TColorDialog и FontDialog1 типа TFontDialog предназначены для выбора цветов и шрифтов соответственно. Они реализуют стандартные диалоговые окна и используются в действиях OptColor и OptFont.

Компонент TMainMenu1 типа TMainMenu реализует главное меню программы. Он является контейнером для объектов типа TMenuItem, реализующие пункты главного и выпадающего меню. Все пункты главного меню связаны с элементами списка действий ActionList1 посредством задания в их свойствах Action имён соответствующих объектов действий. Рассмотрим главное меню поэлементно.

1. “Файл” (объект mmFile) соответствует категории действий File и открывает выпадающее меню, содержащее следующие пункты:

· “Путь к базе данных” (объект mmDataBaseFile) связан с действием FileDataBasePath;

· “Пользователь” (объект mmUser) связан с действием FileUser;

· “Выход” (объект mmExit) связан с действием FileExit.

2. “Таблица” (объект mmTable) соответствует категории действий DataSet и открывает выпадающее меню, содержащее следующие пункты:

· “В начало” (объект mmFirst) связан с действием DataSetFirst;

· “Назад” (объект mmPrior) связан с действием DataSetPrior;

· “Вперёд” (объект mmNext) связан с действием DataSetNext;

· “В конец” (объект mmLast) связан с действием DataSetLast;

· “Вставить” (объект mmInsert) связан с действием DataSetInsert;

· “Удалить” (объект mmDelete) связан с действием DataSetDelete;

· “Редактировать” (объект mmUpdate) связан с действием DataSetUpdate;

· “Обновить” (объект mmRefrash) связан с действием DataSetRefrash;

· “Открыть” (объект mmOpen) связан с действием DataSetOpen;

· “Найти” (объект mmFind) связан с действием DataSetFind;

· “Найти далее” (объект mmFindNext) связан с действием DataSetFindNext;

· “Фильтр” (объект mmFilter) связан с действием DataSetFilter;

· “Показать всё” (объект mmAll) связан с действием DataSetAll;

3. “Сортировка” (объект mmSort) соответствует двум категориям действий SortBy и SortDir. Данный пункт открывает выпадающее меню, содержащее следующие пункты:

· “По номеру” (объект mmSortByNum) связан с действием SortByNum;

· “По автору” (объект mmSortByAut) связан с действием SortByAut;

· “По названию” (объект mmSortByTit) связан с действием SortByTit;

· “По языку” (объект mmSortByLan) связан с действием SortByLan;

· “Отсутствует” (объект mmSortByNo) связан с действием SortByNo;

· “По возрастанию” (объект mmSortDirInc) связан с действием SortDirInc;

· “По убыванию” (объект mmSortDirDec) связан с действием SortDirDec;

4. “Настройка” (объект mmOptions) соответствует категории действий Options и открывает выпадающее меню, содержащее следующие пункты:

· “Цвет” (объект mmColor) связан с действием OptColor);

· “Шрифт” (объект mmFont) связан с действием OptFont;

· “Подтверждение удаления” (объект mmConfDel) связан с действием OptConfDel;

5. “Помощь” (объект mmHelp) соответствует категории действий Help и открывает выпадающее меню, содержащее единственный пункт “О программе” (объект mmAbout), который связан с действием HelpAbout.

Для того чтобы в пунктах меню прорисовывались изображения, в свойстве компонента TMainMenu.Images задано имя списка изображений ImageList1.

Компонент ToolBar1 типа TToolBar является панелью инструментов и предназначен для быстрого вызова основных функций (действий) программы. Он содержит ряд быстрых кнопок типа TToolButton, нажатие на которые активизирует то или иное действие. Все кнопки связаны с определённым действием категории DataSet из списка действий ActionList1, то есть у них в свойство Action заданы имена соответствующих объектов действий. Для того, чтобы кнопки содержали изображения, в свойство компонент Images задано имя списка изображений ImageList1.На панели инструментов расположены следующие кнопки:

· TBFirst связана с действием DataSetFirst;

· TBPrior связана с действием DataSetPrior;

· TBNext связана с действием DataSetNext;

· TBLast связана с действием DataSetLast;

· TBInsert связана с действием DataSetInsert;

· TBDelete связана с действием DataSetDelete;

· TBUpdate связана с действием DataSetUpdate;

· TBRefarsh связана с действием DataSetRefarsh;

· TBOpen связана с действием DataSetOpen;

· TBFind связана с действием DataSetFind;

· TBFindNext связана с действием DataSetFindNext;

· TBFilter связана с действием DataSetFilter;

· TBAll связана с действием DataSetAll.

Компонент Edit1 типа TEdit предназначен для редактирования ячеек таблицы. В основном он находится в невидимом состоянии, а становится видным, только когда фокус ввода перейдёт на определённую ячейку таблицы. Он располагается поверх нее, и весь ввод осуществляется через данный компонент. В этот компоненте прописан единственный метод – обработчик события OnExit TMainForm.Edit1Exit. В обработчике изменяется значение соответствующей ячейки на новое, путём вызова ранимой процедуры, а затем обновляется вся таблица.

Компонент StatusBar1 типа TStatusBar предназначен для вывода расширенных подсказок об визуальных компонентах формы, над которыми в данный момент расположен курсор мыши.