Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA 11 Пользовательские формы.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
430.59 Кб
Скачать

Оконные координаты

На разных компьютерах используются разные экраны, разные видеокарты, да и на одном и том же компьютере можно установить разные видео настройки. Такие же проблемы возникают при подготовке изображения для печати на принтере. Невозможно сделать программу (например, Excel), чтобы она умела строить изображение для любой видео системы или любого принтера. Поэтому программа формирует изображение для системно независимого устройства вывода «Контент устройства». В оперативной памяти создается изображение как прямоугольная матрица: в точках по горизонтали и в точках (строках) по вертикали, для каждой точки задан цвет.

Операционная система выводит контент устройства на экран, используя установленные драйверы видео устройств и параметры настройки видео системы. Это разрешение экрана: Свойства/Экран/Параметры, число пикселей, число строк, качество цветопередачи, и число точек на дюйм: …/Дополнительно /Общие/Масштаб (количество точек на дюйм)… Поэтому при изменении параметров настройки видео системы изображение на экране уменьшается или увеличивается.

Оконные координаты и размеры визуальных компонентов задаются в точках по горизонтали и в точках (строках) по вертикали контента устройства.

Свойства Height и Width задают высоту и ширину визуального компонента. Зададим размеры формы ValCalc 330 строк и 400 точек.

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

Свойства Left и Top задают число точек слева и число строк сверху от начала координат до левого верхнего угла визуального компонента. Начальные значения свойств заданы нулями, но это не левый верхний угол родительского окна, так обозначены незаданные значения. Запущенная форма с незаданными значениями Left и Top остается в той же точке экрана, как в рабочем окне программы MsVB. Зададим для формы ValCalc значения Left =150 и Top =120. На нашем экране форма появляется примерно посередине рабочего листа.

Цвета визуальных компонентов

Визуальные компоненты имеют три «цветных» свойства: ForeColor – цвет текста (заголовка), BackColor – цвет фона, BorderColor – цвет границы. Все три цвета настраиваются одинаково.

Выделим поле свойства BackColor, чтобы перекрасить фон нашего окна. Щелкнем кнопку раскрытия списка  и вместо вкладки System с черно-белыми цветами включим вкладку Palette, чтобы открылась палитра цветов. Щелкнем мышкой светло фиолетовый цвет. Визуальный компонент перекрасился в фиолетовый цвет, а в поле свойства BackColor появился квадратик фиолетового цвета и значение &H00FFC0FF& .

Обратите внимание. При программировании визуальных компонентов цвет обозначается не номером цвета в палитре, как для ячейки рабочего листа, а прямой записью интенсивности каждого из трех цветов. Символы & – начало и конец поля; H – признак 16-ричного числа. Далее записано содержимое 4-х байтов, по 2 16-ричных цифры на байт. Первый байт 00 – пустой, следующие 3 байта – интенсивности 3-х цветов: синий, зеленый, красный.

Вот так задаются максимальные интенсивности чистых цветов:

синий &H00FF0000& зеленый &H0000FF00& красный &H000000FF&

При таком кодировании для каждого цвета можно задать 256 уровней интенсивности, всего 28×28×28=224, более 16 млн. цветов, это максимальная глубина цвета. Но здесь мы создаем цвет для контента устройства. Если на компьютере установлена меньшая глубина цвета, цвет будет пересчитан.

Особенность задания цвета нужно учитывать при программировании визуальных компонентов. Например, если нужно сделать цвет формы красным, в макросе должен быть записан оператор:

ValCalc.BackColor = &H000000FF&

Можно вручную задать любой цвет, используя 16-ричные цифры 0-F.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]