Access 2002

Один недостаток


Каждая из этих функций рассматривается в отдельном разделе.

Но у функций Windows API, предназначенных для работы с диалоговыми окнами, есть один недостаток: ими слишком сложно пользоваться. Поэтому мы разработали для них удобный класс-оболочку под названием CommonDlg и включили его в базу данных CH15.MDB вместе с несколькими примерами. Об этом классе, который вы легко можете включить в свои приложения, рассказывается в следующих разделах.

В Access есть недокументированная возможность использовать диалоговое окно открытия и сохранения файла Microsoft Office. Вы видите это окно каждый раз, когда открываете или сохраняете файл в любом из приложений Microsoft Office. С помощью процедуры из предлагаемого нами модуля basFileOpen вы сможете выводить его и сами.

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

Кроме кода для доступа к стандартным диалоговым окнам мы включили в базу данных CH15.MDB код для вывода еще одного диалогового окна, которое, хотя и не является стандартным, требуется очень часто, — окна для выбора папки. С помощью нашего класса Shell Browse вы сможете предоставить пользователям возможность выбрать каталог, компьютер, принтер или любую виртуальную папку.

Мы не включили в наш класс CommonDlg еще одно часто использующееся диалоговое окно — Print.

Использование класса CommonDlg

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

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

ShowColor Выводит стандартное диалоговое окно для выбора цвета ShowFont Выводит стандартное диалоговое окно для выбора шрифта ShowOpen Выводит стандартное диалоговое окно для открытия файла ShowSave Выводит стандартное диалоговое окно для сохранения файла

В простейшем случае для использования этих диалоговых окон достаточно просто создать новый объект CommonDlg и вызвать один из его методов. Вот пример открытия диалогового окна вывода шрифта:

А как насчет элемента ActiveX CommonDialog?

Если у вас есть элемент ActiveX CommonDialog, его можно использовать вместо нашего класса CommonDlg. Однако с его применением связано несколько ограничений.

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

О Элемент управления не позволяет задать функцию с обратным вызовом (то есть функцию, которая может вызываться, пока диалоговое окно отображается на экране).

Комментарии закрыты