Электронная библиотека » Евгений Матвеев » » онлайн чтение - страница 15


  • Текст добавлен: 16 октября 2020, 08:02


Автор книги: Евгений Матвеев


Жанр: Прочая образовательная литература, Наука и Образование


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 15 (всего у книги 18 страниц)

Шрифт:
- 100% +
15.2.1. Пример программирования

Приведем пример, использующий функцию InputBox (Окно ввода) и процедуру MsgBox (Окно сообщения):


Dim Dig1 As Currency ' переменная для хранения 1-го числа

Dim Dig2 As Currency ' переменная для хранения 2-го числа

Dig1 = Val (InputBox («Введите первое число:», «Запрос»))

Dig2 = Val (InputBox («Введите второе число:», «Запрос»))

MsgBox «Сумма чисел: " & Str (Dig1 + Dig2),, «Результат»


Строковое значение, возвращаемое функцией InputBox (Окно ввода), преобразуется в числовое значение другой встроенной функцией – Val (Значение). Сумма переменных Dig1 и Dig2, должна быть преобразована обратно в строковый тип данных, что выполняется с помощью функции Str (Строка).

15.3. Объект Screen (Экран)

При вводе и выводе данных с использованием элементов управления, нередко приходится обращаться к свойствам глобального объекта Screen (Экран), представляющего собой весь экран Windows. Событиями и методами объект Screen (Экран) не обладает.

15.3.1. Свойства

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

Большинство свойств объекта Screen (Экран) доступны только для чтения, кроме MouseIcon (Значок указателя мыши) и MousePointer (Указатель мыши):

ActiveControl (Активный элемент управления). Указывает на элемент управления, имеющий фокус ввода.

ActiveForm (Активная форма). Ссылается на форму, представляющую собой активное окно.

FontCount (Количество шрифтов). Содержит число шрифтов, доступных для текущего дисплея.

Fonts (Шрифты). Представляет собой массив названий шрифтов, доступных для текущего дисплея.

Height (Высота). Содержит высоту экрана в твипах.

MouseIcon (Значок указателя мыши). Позволяет загрузить изображение с новым значком курсора мыши с помощью встроенной функции LoadPicture (Загрузить рисунок). Действует только в том случае, если свойство MousePointer (Указатель мыши) = 99.

MousePointer (Указатель мыши). Определяет внешний вид указателя мыши:

• 0 – Default (По умолчанию),

• 1 – Arrow (Стрелка),

• 2 – Cross (Крестик),

• 3 – I-Beam (Вертикальная черта),

• 4 – Icon (Значок),

• 5 – Size (Размер),

• 6 – Size NE SW (Размер верхний правый – нижний левый),

• 7 – Size N S (Размер верх – низ),

• 8 – Size NW SE (Размер верхний левый – нижний правый),

• 9 – Size W E (Размер лево – право),

• 10 – Up Arrow (Стрелка вверх),

• 11 – Hourglass (Песочные часы),

• 12 – No Drop (Не отпускать),

• 13 – Arrow and Hourglass (Стрелка и песочные часы),

• 14 – Arrow and Question (Стрелка и вопрос),

• 15 – Size All (Все размеры),

• 99 – Custom (Пользовательский) – для отображения указателя мыши используется значок, определенный свойством MouseIcon (Значок указателя мыши).

TwipsPerPixelX (Отношение твипов на пиксель по X). Содержит число, представляющее текущее отношение твипов на пиксель по горизонтали, то есть – горизонтальное разрешение экрана.

TwipsPerPixelY (Отношение твипов на пиксель по Y). Содержит число, представляющее текущее отношение твипов на пиксель по вертикали, то есть – вертикальное разрешение экрана.

Width (Ширина). Содержит ширину экрана в твипах.

15.3.2. Пример программирования

Свойство ActiveControl (Активный элемент управления) позволяет создавать универсальные процедуры обработки, не связанные с конкретным элементом управления, что уже рассматривалось в предыдущей главе при описании программирования объекта Clipboard (Буфер обмена).

Чтобы получить полный доступ к свойствам и методам активного окна, воспользуйтесь свойством ActiveForm (Активная форма):


Screen.ActiveForm.Print «Печать на текущей форме»


Свойства FontCount (Количество шрифтов) и Fonts (Шрифты) можно использовать, например, для заполнения комбинированного списка Combo1 именами всех шрифтов, доступных в системе. Это лучше всего сделать в рамках процедуры обработке события Form_Load, чтобы комбинированный список Combo1 был заполнен сразу после запуска приложения:


Private Sub Form_Load ()

For i = 0 To Screen.FontCount-1 ‘ цикл для всех шрифтов

Combo1.AddItem Screen.Fonts (i) ‘ добавление имени шрифта

Next ‘ следующая итерация цикла

Combo1.ListIndex = 0 ‘ отображение 0-го элемента списка

End Sub


Выбрать внешний вид указателя мыши из стандартного системного набора можно с помощью свойства MousePointer (Указатель мыши). Так можно информировать пользователя об изменении состояния вашего приложения. Только потом не следует забывать восстановить внешний вид указателя:


Dim CurrentMouse As Integer ‘ переменная для хранения указателя мыши

CurrentMouse = Screen.MousePointer ‘ сохраняем текущий указатель

Screen.MousePointer = 11 ‘ превращаем указатель в песочные часы


…тут что-то делаем…


Screen.MousePointer = CurrentMouse ‘ восстанавливаем указатель мыши


Кроме стандартных указателей мыши, с помощью встроенной функции LoadPicture (Загрузить рисунок) можно загрузить в свойство MouseIcon (Значок указателя мыши) изображение с собственным указателем:


Dim CurrentMouse As Integer ‘ переменная для хранения указателя мыши

CurrentMouse = Screen.MousePointer ‘ сохраняем указатель

Screen.MouseIcon = LoadPicture («c:Program FilesMicrosoft Visual StudioCommonGraphicsCursorsH_POINT.CUR») ‘ загружаем файл

Screen.MousePointer = 99 ‘ используем загруженный указатель


…тут что-то делаем…


Screen.MousePointer = CurrentMouse ‘ восстанавливаем указатель мыши



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


Dim WidthInPixels As Integer ‘ ширина экрана в пикселях

Dim HeightInPixels As Integer ‘ высота экрана в пикселях

WidthInPixels = Screen. Width / Screen.TwipsPerPixelY

HeightInPixels = Screen. Height / Screen.TwipsPerPixelX

Print «Разрешение экрана:» & WidthInPixels & «x» & HeightInPixels

15.4. Объект Printer (Принтер)

Чтобы вывести на печатающее устройство текст или графическую информацию, можно воспользоваться методом формы PrintForm (Распечатать форму). Данный метод распечатывает на принтере все видимые объекты, рисунки и текст, находящийся на поверхности формы:


[объект.] PrintForm


Однако, гораздо более гибкими возможностями для печати на принтере обладает специально предназначенный для этого глобальный объект Printer (Принтер). Он имеет большое число свойств и методов.

15.4.1. Свойства

ColorMode (Режим цвета). Позволяет определить, поддерживает ли принтер цветную печать:

• 1 или vbPRCMMonochrome – монохромная печать,

• 2 или vbPRCMColor – цветная печать.

Copies (Копии). Устанавливает количество печатаемых копий.

CurrentX (Текущая координата X). Используется графическими методами. Размерность значения CurrentX (Текущая координата X) определяется другим свойством ScaleMode (Единица масштаба).

CurrentY (Текущая координата Y). Аналогично предыдущему свойству.

DeviceName (Имя устройства). Возвращает имя устройства, поддерживаемого драйвером.

DrawMode (Режим рисования). Определяет способ формирования цвета графических изображений при выводе на экран:

• 1 – Blackness – черный цвет,

• 2 – Not Merge Pen – инверсия значения 15,

• 3 – Mask Not Pen – сочетание компонентов цвета, общих для фона и инвертированного пера,

• 4 – Not Copy Pen – инверсия значения 13,

• 5 – Mask Pen Not – сочетание компонентов цвета, общих для пера и инвертированного фона,

• 6 – Invert – инверсия цвета фона,

• 7 – Xor Pen – сочетание компонентов цвета пера и фона за вычетом общих компонентов,

• 8 – Not Mask Pen – инверсия значения 9,

• 9 – Mask Pen – сочетание компонентов цвета, общих для пера и фона,

• 10 – Not Xor Pen – инверсия значения 7,

• 11 – Nop – отключение рисования,

• 12 – Merge Not Pen – сочетание цвета фона и инвертированного цвета пера,

• 13 – Copy Pen – используется значение свойства ForeColor (Основной цвет),

• 14 – Merge Pen Not – сочетание цвета пера и инвертированного цвета фона,

• 15 – Merge Pen – сочетание цвета пера и цвета фона,

• 16 – Whiteness – белый цвет.

DrawStyle (Тип линии). Позволяет выбрать тип линии по умолчанию для рисования на поверхности формы:

• 0 – Solid (Сплошная),

• 1 – Dash (Тире),

• 2 – Dot (Точка),

• 3 – Dash-Dot (Тире-точка),

• 4 – Dash-Dot-Dot (Тире-точка-точка),

• 5 – Transparent (Прозрачная),

• 6 – Inside Solid (Сплошная внутри).

DrawWidth (Ширина линии). Устанавливает ширину линии по умолчанию для графических методов формы. Измеряется в двадцатых долях пункта (twips)

DriverName (Имя драйвера). Возвращает имя драйвера для объекта Printer (Принтер).

Duplex (Дуплекс). Определяет, поддерживается ли принтером двухсторонняя печать:

• 1 или vbPRDPSimplex – односторонняя печать,

• 2 или vbPRDPHorizontal – двухсторонняя горизонтальная печать,

• 3 или vbPRDPVertical – двухсторонняя вертикальная печать.

FillColor (Цвет заполнения). Содержит цвет заполнения фигур, выводимых на поверхность формы. Выбирается аналогично свойству BackColor (Цвет фона).

FillStyle (Тип заполнения). Определяет тип заполнения фигур, отображаемых на форме:

• 0 – Solid (Сплошная),

• 1 – Transparent (Прозрачная),

• 2 – Horizontal Line (Горизонтальные линии),

• 3 – Vertical Line (Вертикальные линии),

• 4 – Upward Diagonal (Восходящие диагонали),

• 5 – Downward Diagonal (Нисходящие диагонали),

• 6 – Cross (Клеточки),

• 7 – Diagonal Cross (Косые клеточки).

Font (Шрифт). Устанавливает тип и параметры шрифта, выводимого на форму с помощью метода Print (Напечатать). Изменение значения свойства влияет только на новый текст – старый остается без изменений. Имеет несколько дочерних свойств, каждое из которых может устанавливаться независимо друг от друга:

• Font.Name или просто Font – имя шрифта,

• Font.Bold – жирный шрифт,

• Font.Charset – кодовая страница,

• Font.Italic – курсивный шрифт,

• Font.Size – размер шрифта,

• Font.Strikethrough – перечеркнутый шрифт,

• Font. Underline – подчеркнутый шрифт,

• Font. Weight – ширина букв.

FontCount (Количество шрифтов). Содержит число шрифтов, доступных для текущего принтера.

Fonts (Шрифты). Представляет собой массив названий шрифтов, доступных для текущего принтера.

FontTransparent (Прозрачность шрифта). Данное свойство определяет прозрачность фона символов, выводимых методом Print (Напечатать):

• True (Истина) – фон прозрачный,

• False (Ложь) – фон непрозрачный.

ForeColor (Основной цвет). Цвет изображений и текста, выводимых на форму. Выбирается аналогично свойству BackColor (Цвет фона).

hDC (Идентификатор контекста устройства). Содержит системный указатель на текущее печатающее устройство.

Height (Высота). Абсолютный вертикальный размер страницы, измеренный в двадцатых долях пункта (twips).

Orientation (Ориентация). Определяет ориентацию печатаемых бумажных листов:

• 1 или vbPRORPortrait – портретная (вертикальная) ориентация бумаги,

• 2 или vbPRORLandscape – ландшафтная (горизонтальная) ориентация бумаги.

Page (Страница). Содержит номер текущей страницы, на которую осуществляется вывод информации.

PaperBin (Лоток подачи бумаги). Определяет лоток подачи бумаги для текущего принтера:

• 1 или vbPRBNUpper – верхний лоток подачи бумаги,

• 2 или vbPRBNLower – нижний лоток подачи бумаги,

• 3 или vbPRBNMiddle – средний лоток подачи бумаги,

• 4 или vbPRBNManual – ожидать ручной подачи каждого листа,

• 5 или vbPRBNEnvelope – устройство автоматической подачи конвертов,

• 6 или vbPRBNEnvManual – устройство ручной подачи конвертов,

• 7 или vbPRBNAuto – лоток по умолчанию,

• 8 или vbPRBNTractor – звездчатое устройство подачи бумаги,

• 9 или vbPRBNSmallFmt – лоток подачи бумаги малого формата,

• 10 или vbPRBNLargeFmt – лоток подачи бумаги большого формата,

• 11 или vbPRBNLargeCapacity – устройство подачи большой вместимости,

• 14 или vbPRBNCassette – присоединенный внешний картридж с бумагой.

PaperSize (Размер бумаги). Устанавливает размер бумаги для текущего принтера. Допустимо большое разнообразие значений данного свойства:

• 1 или vbPRPSLetter – формат бумаги «Letter»,

• 2 или vbPRPSLetterSmall – формат бумаги «Letter Small»,

• 3 или vbPRPSTabloid – формат бумаги «Tabloid»,

• 4 или vbPRPSLedger – формат бумаги «Ledger»,

• 5 или vbPRPSLegal – формат бумаги «Legal»,

• 6 или vbPRPSStatement – формат бумаги «Statement»,

• 7 или vbPRPSExecutive – формат бумаги «Executive»,

• 8 или vbPRPSA3 – формат бумаги A3,

• 9 или vbPRPSA4 – формат бумаги A4,

• 10 или vbPRPSA4Small – формат бумаги A4 малый,

• 11 или vbPRPSA5 – формат бумаги A5,

• 12 или vbPRPSB4 – формат бумаги B4,

• 13 или vbPRPSB5 – формат бумаги B5,

• 14 или vbPRPSFolio – формат бумаги «Folio»,

• 15 или vbPRPSQuarto – формат бумаги «Quarto»,

• 16 или vbPRPS10x14 – формат бумаги 10 x 14 дюймов,

• 17 или vbPRPS11x17 – формат бумаги 11 x 17 дюймов,

• 18 или vbPRPSNote – формат бумаги «Note»,

• 19 или vbPRPSEnv9 – конверт формата №9,

• 20 или vbPRPSEnv10 – конверт формата №10,

• 21 или vbPRPSEnv11 – конверт формата №11,

• 22 или vbPRPSEnv12 – конверт формата №12,

• 23 или vbPRPSEnv14 – конверт формата №14,

• 24 или vbPRPSCSheet – формат бумаги C,

• 25 или vbPRPSDSheet – формат бумаги D,

• 26 или vbPRPSESheet – формат бумаги E,

• 27 или vbPRPSEnvDL – конверт формата DL,

• 28 или vbPRPSEnvC5 – конверт формата C5,

• 29 или vbPRPSEnvC3 – конверт формата C3,

• 30 или vbPRPSEnvC4 – конверт формата C4,

• 31 или vbPRPSEnvC6 – конверт формата C6,

• 32 или vbPRPSEnvC65 – конверт формата C65,

• 33 или vbPRPSEnvB4 – конверт формата B4,

• 34 или vbPRPSEnvB5 – конверт формата B5,

• 35 или vbPRPSEnvB6 – конверт формата B6,

• 36 или vbPRPSEnvItaly – конверт формата «Italy»,

• 37 или vbPRPSEnvMonarch – конверт формата «Monarch»,

• 38 или vbPRPSEnvPersonal – конверт формата «Personal»,

• 39 или vbPRPSFanfoldUS – формат бумаги «U.S. Standard Fanfold»,

• 40 или vbPRPSFanfoldStdGerman – формат бумаги «German Standard Fanfold»,

• 41 или vbPRPSFanfoldLglGerman – формат бумаги «German Legal Fanfold»,

• 256 или vbPRPSUser – пользовательский формат бумаги, определенный свойствами Height (Высота) и Width (Ширина).

Port (Порт). Возвращает имя порта, через который документы отправляются на принтер.

PrintQuality (Качество печати). Используется для установки качества печати (разрешения принтера), если эту функцию поддерживает драйвер принтера:

• —1 или vbPRPQDraft – черновая печать,

• —2 или vbPRPQLow – низкое разрешение,

• —3 или vbPRPQMedium – среднее разрешение,

• —4 или vbPRPQHigh – высокое разрешение.

RightToLeft (Справа налево). Управляет направлением вывода текста в двунаправленных системах с соответствующими языковыми настройками (арабский, иврит).

ScaleHeight (Масштабированная высота). Высота формы в единицах измерения, определенных свойством ScaleMode (Единица масштаба).

ScaleLeft (Масштабированная левая координата). Координата X левого верхнего угла формы в единицах измерения, определенных свойством ScaleMode (Единица масштаба).

ScaleMode (Единица масштаба). Выбор единицы изменения для системы координат, связанных с формой, которая используется графическими методами для рисования на поверхности формы:

• 0 или vbUser (Пользовательские единицы) – определяются пользователем путем установки значения свойств ScaleHeight (Масштабированная высота) и ScaleWidth (Масштабированная ширина),

• 1 или vbTwips (Твипы) – 1/20 пункта или 1/1440 дюйма, устанавливается по умолчанию,

• 2 или vbPoints (Пункты) – 1/72 дюйма,

• 3 или vbPixels (Точки изображения),

• 4 или vbCharacters (Символы) – 1/6 дюйма по вертикали и 1/12 дюйма по горизонтали,

• 5 или vbInches (Дюймы),

• 6 или vbMillimeters (Миллиметры),

• 7 или vbCentimeters (Сантиметры).

ScaleTop (Масштабированная верхняя координата). Координата Y левого верхнего угла формы в единицах измерения, определенных свойством ScaleMode (Единица масштаба).

ScaleWidth (Масштабированная ширина). Ширина формы в единицах измерения, определенных свойством ScaleMode (Единица масштаба).

TrackDefault (Настройки по умолчанию). Указывает, является ли используемый объект Printer (Принтер) принтером по умолчанию:

• True (Истина) – используется принтер по умолчанию,

• False (Ложь) – используется другой принтер.

TwipsPerPixelX (Отношение твипов на пиксель по X). Содержит число, представляющее текущее отношение твипов на пиксель по горизонтали, то есть – горизонтальное разрешение экрана.

TwipsPerPixelY (Отношение твипов на пиксель по Y). Содержит число, представляющее текущее отношение твипов на пиксель по вертикали, то есть – вертикальное разрешение экрана.

Width (Ширина). Абсолютный горизонтальный размер страницы, измеренный в двадцатых долях пункта (twips).

Zoom (Масштаб). Коэффициент увеличения или уменьшения печатаемого изображения в процентах.

15.4.2. Методы

Circle (Круг). Рисует на текущей странице объекта Printer (Принтер) окружность, эллипс или дугу окружности:


Printer.Circle [Step] (x, y), радиус [, [цвет] [, [начало] [, [конец] [, отношение]]]]


Координаты x и y указывают на центр окружности. Ключевое слово Step (Шаг) определяет отсчет координат относительно свойств CurrentX (Текущая координата X) и CurrentY (Текущая координата Y). Радиус, наряду с координатами, является необходимым параметром. Цвет указывать не обязательно, в этом случае используется значение свойства ForeColor (Основной цвет). Аргументы начало и конец задают положение начала и конца дуги, выраженное в радианах. Параметр отношение определяет эксцентриситет кривой. Так, отношение = 1 приводит к созданию правильной окружности, а любые другие значения – к эллипсу.

EndDoc (Закончить документ). Направляет сформированный для печати документ на принтер:


Printer. EndDoc


KillDoc (Уничтожить документ). Немедленно прерывает распечатку текущего документа на принтере:


Printer.KillDoc


Line (Линия). Рисует на текущей странице линии и прямоугольники. После вызова метода Line (Линия) свойства CurrentX (Текущая координата X) и CurrentY (Текущая координата Y) получат значения координат конечной точки линии или прямоугольника. Синтаксис метода таков:


Printer.Line [[Step] (x1, y1)] – [Step] (x2, y2) [, [цвет] [, B [F]]]


Пары координат x1, y1 и x2, y2 определяют начало и конец линии соответственно. Ключевое слово Step (Шаг) указывает, что данная пара координат отсчитывается относительно CurrentX (Текущая координата X) и CurrentY (Текущая координата Y). Если цвет не указан, то используется ForeColor (Основной цвет). Параметр B включает рисование прямоугольника, а F – заливает его краской цвета контура.

NewPage (Новая страница). Завершает формирование текущей страницы и переходит к следующей:


Printer.NewPage


PaintPicture (Нарисовать рисунок). Выводит готовое графическое изображение, например хранящееся в свойстве Picture (Рисунок) одного из элементов управления, на текущую страницу объекта Printer (Принтер):


Printer.PaintPicture рисунок, X, Y [, ширина] [, высота]


Аргумент рисунок ссылается на свойство Picture (Рисунок) одного из элементов управления, координаты X и Y определяют координаты верхнего левого угла рисунка, ширина и высота устанавливают размеры изображения.

Print (Напечатать). Выводит текстовую информацию на принтер. Может использовать варьируемое количество параметров:


Printer.Print [[выражение] [{;|,}]]…


Pset (Вывести точку). Рисует точку заданного цвета на текущей странице. Применяется для вычерчивания графиков и создания сложных рисунков:


Printer.Pset [Step] (x, y) [,цвет]


Параметры x и y определяют координаты точки. При использовании ключевого слова Step (Шаг) они отсчитывается относительно свойств CurrentX (Текущая координата X) и CurrentY (Текущая координата Y). Если цвет не указан, то используется значение свойства ForeColor (Основной цвет).

Scale (Масштабировать). Устанавливает новую систему координат для графических методов, одновременно изменяя значения свойств ScaleLeft (Масштабированная левая координата), ScaleTop (Масштабированная верхняя координата), ScaleWidth (Масштабированная ширина) и ScaleHeight (Масштабированная высота):


Printer.Scale [(x1, y1) – (x2, y2)]


Пары координат x1, y1 и x2, y2 определяют координаты левого верхнего и правого нижнего углов страницы соответственно.

ScaleX (Масштабировать по X). Работает как функция, преобразуя числовое значение ширины из одной единицы измерения в другую:


Printer.ScaleX (ширина [, из масштаба] [, в масштаб])


Аргумент ширина содержит числовое значение, которое подвергается преобразованию. Могут указываться следующие единицы измерения масштаба:

• 0 или vbUser (Пользовательские единицы) – определяются пользователем путем установки значения свойств ScaleHeight (Масштабированная высота) и ScaleWidth (Масштабированная ширина),

• 1 или vbTwips (Твипы) – 1/20 пункта или 1/1440 дюйма, устанавливается по умолчанию,

• 2 или vbPoints (Пункты) – 1/72 дюйма,

• 3 или vbPixels (Точки изображения),

• 4 или vbCharacters (Символы) – 1/6 дюйма по вертикали и 1/12 дюйма по горизонтали,

• 5 или vbInches (Дюймы),

• 6 или vbMillimeters (Миллиметры),

• 7 или vbCentimeters (Сантиметры).

ScaleY (Масштабировать по Y). Работает как функция, преобразуя числовое значение высоты из одной единицы измерения в другую:


Printer.ScaleY (высота [, из масштаба] [, в масштаб])


Аргумент высота содержит числовое значение, которое подвергается преобразованию. Допустимые единицы измерения масштаба те же, что и у свойства ScaleX (Масштабировать по X).

TextHeight (Высота текста). Работает как функция, возвращающая высоту текстовой строки, которая может быть распечатана текущим шрифтом:


Printer. TextHeight (строка)


TextWidth (Ширина текста). Работает как функция, возвращающая ширину текстовой строки, которая может быть распечатана текущим шрифтом:


Printer. TextWidth (строка)


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации