Чтение онлайн

на главную

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

В любом случае, главное здесь то, что задаваемое вами в свойстве Name имя будет именем объекта, которое вы используете в своем программном коде, когда захотите что-либо сделать с этим объектом. Имя формы или элемента управления должно быть допустимым в VBA именем (никаких пробелов и знаков пунктуации; см. главу 6). Кроме того, имя должно описывать функциональное назначение объекта в программе.

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

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

Классическим примером модальной формы является обычное диалоговое окно: пока диалоговое окно открыто, вы не можете работать с другими частями программы; чтобы работать с другим окном или с самим документом, вы должны сначала закрыть диалоговое окно. Точно так же, когда активна модальная форма, в VBA могут выполняться только те процедуры, которые принадлежат этой форме. Форма может реагировать на события, но остальная часть программы остается "замороженной", равно как и само приложение, в котором выполняется программа, остается недоступным пользователю, пока эта форма не будет закрыта.

В VBA 6.3 (точно так же, как и в VBA 6) вы можете назначить любому диалоговому окну модальное или немодальное поведение. По умолчанию для соответствующего свойства ShowModal формы установлено значение True, и это значит, что форма будет модальной.

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

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

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

Хотя эта книга посвящена преимущественно VBA 6, если вы работаете с более ранними версиями VBA, вам следует знать, что в VBA 5 все формы модальны- свойства ShowModal у них нет.

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

ближайшей линии сетки. Здесь я должен подчеркнуть, что сетка очень поможет в работе, если правильно выбрать ее параметры для разрабатываемого проекта.

Но вернемся к нашим баранам. Менять размеры форм и элементов управления совсем просто. Можно задать значения свойств Height (Высота) и Width (Ширина) в окне свойств, но еще проще захватить и перетаскивать один из маркеров изменения размеров объекта- один из маленьких квадратиков, появляющихся вокруг изображения объекта, когда последний выделен. Я понимаю, вы знаете, как изменять размеры объектов - любая программа в Windows (от Paint до чего угодно), позволяющая менять размеры графических объектов, использует именно этот метод. Но, на всякий случай, привожу формальное описание процедуры.

* Чтобы изменить размеры формы в одном измерении, перетащите нижний или правый боковой маркер.

* Чтобы изменить размеры формы в обоих измерениях, сразу перетащите угловой маркер.

Обратите внимание на то. что для изменения размеров годятся только белые маркеры, а большинство маркеров формы - черные. Черные маркеры не делают ничего, только выделяют саму форму. Форма в своем окне всегда привязана к верхнему левому углу окна, но не беспокойтесь - позиция формы на экране от этого совершенно не зависит.

Можно непосредственно задавать размеры формы или помещенных в нее элементов управления, меняя числовые значения свойств Height и Width в окне свойств, Значения в данном случае задаются в пунктах (пункт равен 1/72 дюйма).

Управление размещением формы на экране

Вы имеете полный контроль над тем, где именно на экране должна появляться форма при отображении ее программой (или при пробном запуске самой формы из окна редактора Visual Basic). Для этого предлагается использовать свойство StartUpPosition.

По умолчанию для этого свойства устанавливается значение 1-CenterOwner. Это значит, что форма должна появиться в центре окна VBA-приложения - независимо от его размеров и положения на экране (правда, если форма при этом частично оказывается за пределами экрана, то она придвинется своим краем вплотную к краю экрана, но никак не дальше).

Если нужно, чтобы форма всегда появлялась посередине экрана, независимо от того, где размещено окно VBA-приложения, выберите для свойства Start Up Position значение 2 Center Screen. Чтобы установить свои собственные значения, выберите 0 -Manual, а после этого задайте значения свойств Left (Левый край) и Тор (Верх).

Чтобы изменить положение элемента управления в форме, просто перетащите этот элемент управления туда, куда нужно. Если же вам нужна особая точность, напечатайте подходящие числовые значения для свойств Lef t (Левый край) и Тор (Верх).

Если вы хотите придать своим формам трехмерный вид, воспользуйтесь свойством Special Effect, имеющимся у форм и некоторых элементов управления. При выборе для этого свойства значения из раскрывающегося списка, отличного от 0 (соответствующего плоскому виду), объекту придается небольшая, но достаточно заметная глубина.

Поделиться:
Популярные книги

Мимик!

Северный Лис
1. Сбой Системы!
Фантастика:
боевая фантастика
5.40
рейтинг книги
Мимик!

Измена. Жизнь заново

Верди Алиса
1. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Жизнь заново

Я Гордый Часть 3

Машуков Тимур
3. Стальные яйца
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я Гордый Часть 3

Я Гордый часть 2

Машуков Тимур
2. Стальные яйца
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я Гордый часть 2

Счастливый торт Шарлотты

Гринерс Эва
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Счастливый торт Шарлотты

Академия

Кондакова Анна
2. Клан Волка
Фантастика:
боевая фантастика
5.40
рейтинг книги
Академия

Кодекс Охотника. Книга XXIII

Винокуров Юрий
23. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXIII

Поступь Империи

Ланцов Михаил Алексеевич
7. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Поступь Империи

Я все еще граф. Книга IX

Дрейк Сириус
9. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я все еще граф. Книга IX

Неверный. Свободный роман

Лакс Айрин
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Неверный. Свободный роман

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Темный Лекарь 4

Токсик Саша
4. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 4

Сердце Дракона. Предпоследний том. Часть 1

Клеванский Кирилл Сергеевич
Сердце дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Сердце Дракона. Предпоследний том. Часть 1

Курсант: Назад в СССР 10

Дамиров Рафаэль
10. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 10