(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Создание рамок, обрамляющих форму

  Сначала я сделал просто и тупо - просто растянул на форме два прямоугольника rectDown и rectTop. Прямоугольник rectDown сделал приподнятым  и позиционировал его на самый нижний план формы. Прямоугольник rectTop сделал утопленным и размерами чуть меньше rectDown. Позиционировал его сверху rectDown так, чтобы казалось, что по краю формы создана рамка. Потом накидал на форму элементы. Прямоугольник rectDown покрасил в темно-серый цвет, а rectTop в зеленоватый - ну такой стиль был у всех форм в базе (Вы можете, конечно выбирать любые цвета). Визуально форма выглядела красиво, имела тонкую рамку по краям и зеленоватый цвет фона. Да, у меня еще строки заголовка у формы не было (тип границы - отсутствует). Для перетаскивания формы я использую фальшивую строку заголовка - надпись, за которую можно ухватиться мышкой (код будет рассмотрен в следующей статье пользовательского интерфейса).

Вроде было нормально сначала, красиво, но потом стали возникать трудности. Эти прямоугольники постоянно норовили сползти относительно друг друга и получалось некрасиво - с одной стороны рамка чуть шире, с другой чуть уже. Когда в режиме разработки приходилось выделять несколько контролов на форме мышкой (протаскиванием с нажатой клавишей), понятное дело, выбирался и сдвигался прямоугольник rectTop, который был раскинут по всей форме чуть выше rectDown, но ниже чем остальные контролы. Постоянно приходилось подгонять края формы к этим прямоугольникам. Ну, в общем, некоторое время я с этим кошмаром мирился ;)

Решил я поискать какой-нибудь API для этого, но пока не обнаружил (вернее, обнаружил для форм VB, но к формам Access он не подошел). Даже на форумах задавал вопрос, но внятных ответов не получил (видимо, плохо спрашивал ;).  Приступив к самостоятельным проискам, нащупал решение:

' нарисуем из двух прямоугольников вокруг формы рамку
Me.rectDown.Left = 30
Me.rectDown.Top = 30
Me.rectDown.Width = 9740
Me.rectDown.Height = 5290
Me.rectTop.Left = 80
Me.rectTop.Top = 70
Me.rectTop.Width = 9660
Me.rectTop.Height = 5210
DoCmd.RunCommand acCmdSizeToFitForm

тут все понятно - куда хотим (или куда удобнее) бросаем два прямоугольника. Положение их в режиме разработки не важно, куда-нибудь в угол затолкать ;). В режиме выполнения они сами позиционируются по краям формы. У Вас размер формы может быть другим, поэтому подберите подходящие себе размеры (в твипах). Как видно верхний прямоугольник rectTop (граница у него вдавленная) чуть меньше и позиционируется чуть ниже и правее прямоугольника rectDown (с типом границы - приподнятый). Прямоугольник rectDown окрашен в темно-зеленый цвет (повторяю, выбирайте свои подходящие цвета, нечего с меня копировать, а rectTop в зеленовато-желтый (он и создает общий цвет фона формы).

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

Вообще объект DoCmd.RunCommand богат на различные полезные константы, практически на все все команды меню и кнопки панелей инструментов имеются соответствующие константы. Просто пришлось поискать соответствующую команде меню Окно-По размеру формы ;) Решение просто поразило меня своей простотой ;)

Позже надо будет вплотную заняться интересным методом RunCommand объекта DoCmd (вынести в отдельную тему библиотеки), я даже сайтик обнаружил англицкий с довольно подробным описанием команд, осталось только переложить на великий и могучий ;)

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

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 04.10.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft 365 Apps for business (corporate)
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
Microsoft Windows Professional 10, Электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
Проект mic-hard - все об XP - новости, статьи, советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100