Стартовая (главная) форма приложения

 

Пробовал я как-то изменять цвет серого фона MDI окна Access. Ну, даже картинку можно положить, чтобы закрыть эту стандартную серость.... Не то....

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

Тут же возникли проблемы. Если мы раскрываем хоть одну форму на весь экран, будьте уверены, остальные формы тотчас последуют ее примеру :). Это стандарт MDI (многодокументного интерфейса). Поэтому пользоваться DoCmd.Maximize приходится с большой оглядкой.... Но даже если Вас съели, все равно есть выход ;).

Я нашел простой способ:

Dim lngFormHeight As Long
Dim lngFormWidth As Long
 

DoCmd.Echo False ' отключаем прорисовку, чтобы не отображать дергания экрана
DoCmd.Maximize ' развернем форму на весь экран
lngFormWidth = Me.InsideWidth 'сохраним ширину на данный момент
lngFormHeight = Me.InsideHeight 'сохраним высоту на данный момент
DoCmd.Restore 'восстановим
DoCmd.MoveSize 0, 0, lngFormWidth, lngFormHeight 'разместим по полученным координатам
DoCmd.Echo True  'включаем прорисовку

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

небольшие дополнения, можно сказать штрихи...

Я всегда убираю панели инструментов с экрана. Все панели инструментов простым циклом отключать нельзя (да и дольше), при скрытии некоторых Access (ХР, 2003) просто вылетает с ошибкой. Поэтому просто скрываем стандартные панели и строку меню:

DoCmd.ShowToolbar ("Menu Bar"), acToolbarNo
DoCmd.ShowToolbar ("Database"), acToolbarNo
DoCmd.ShowToolbar ("Web"), acToolbarNo
DoCmd.ShowToolbar ("Formatting (Form/Report)"), acToolbarNo
DoCmd.ShowToolbar ("Form View"), acToolbarNo
 

также выполняю некоторые настройки среды Access:

Application.SetOption "ShowWindowsInTaskbar", False ' отключаем окна в панели задач
Application.SetOption "Show Status Bar", False ' отключаем строку состояния
 

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


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=7436