Вывод информации можно осуществлять различными шрифтами, в зависимости от используемого оборудования и программного обеспечения. Если операционная система не находит данный шрифт, она выбирает ближайший аналог. Для выбора шрифта в программном коде используется следующий оператор присваивания:
ИмяОбъекта-контейнера.Font.свойство=значение
?Например, frmHello.Font.Name=“Arial”
frmHello.Font.Size =20
frmHello.Font.Bold=True и т.д.
В качнстве объекта- контейнера могут быть командная кнопка, форма, надпись, поле ввода. Но только формы и графические окна могут работать одновременно с несколькими шрифтами. В остальных элементах управления изменение шрифта влияет на весь текст.
Печать табличных данных
В VB5 печать текста можно осуществлять в заданном формате. Зона имеет размер в 14 символов. В основном зоны используются при печати непропорциональными шрифтами типа Courier, т.к. каждая колонка по ширине равна среднему значению ширины символа. Если параметры в методе Print разделены запятыми, то данные выводятся в нескольких зонах. Например:
Me.Print Family$,Name$
После обработки выражения методом Print, производится переход на новую строку. Если используется Print без параметров, выводится пустая строка. Если не нужно переходить на новую строку, в конце строки вставляется символ”;”. Для печати с заданной колонки можно использовать функцию Tab, Например:
Print Tab (номер колонки %);
Для вставки указанного числа пробелов, начиная с текущей позиции, используется функция Spc (число пробелов %)
Функция Format
Для вывода числовых данных в нужном формате используется функция
Format( числовое выражение, строка формата $)
Результатом данной функции является строка, в которой выражение представлено по заданному формату. Например:
Me.Print Format(123.456789,”###.###”)
дают результат 123,46. Незначащие нули в начале и конце числа игнорируются. Для вывода незначащих нулей используется формат “000.00”. Если необходимо вывести символы “- “, “+”, “$”,”(“,”)” или пробел, их размещают непосредственно в формате. Например:
Me.Print Format(Amount,”$###.###”)
Именованные форматы
Именованные форматы являются встроенными форматами VB5 и облегчают работу по форматированию выводимого текста.
Именованный формат | Описание |
General Number | Строка цифр без разделителя для тысяч |
Currency | Выводит 2 цифры справа от дес. точки и учитывает разделителя для тысяч |
Fixed | По крайней мере одна цифра слева и две справа от десятичной точки |
Standard | То же и разделитель тысяч |
Percent | Число в виде процента. Выводит две цифры справа от дес.точки |
Scientific | Научная форма |
Yes/No | Если число равно 0, то выводит No, иначе Yes |
True/False | Если число равно1, то выводит True, иначе False |
On/Off | Если число равно1, то выводит On , иначе Off |
General Date | Выводит дату и/или время. Если отсутствует дробная часть, выводится только дата, если целая часть, то- время.Например 23.12.98 10:30:45 |
Long Date | Полный формат Windows для вывода даты Wedn 23 Dec 1998 |
Medium Date | Обычный формат Windows для вывода даты 23- Dec-98 |
Short Date | Сокращенный формат Windows для вывода даты 23.12.98 |
Long Time | Время в час, мин, сек |
Medium Time | Время в12-часовом формате: час, мин и AM/PM |
Short Time | Время в час, мин в 24-часовом формате |
Например,
Me.Print Format(Amount, “Currency”)
Me.Print Format(Amount, “###,###.##”)
Me.Print Format(Now, “General Date”)
Объект Printer
Vb5 позволяет легко устанавливать свойства принтера, используемого в системе.
Команда PrintForm выводит на принтер графический образ окна формы. Ее синтаксис: ИмяФормы.PrintForm
Команда осуществляет побитовый перенос формы с заголовком и рамкой с экрана на форму и не обладает достаточной гибкостью.
Обычный способ вывода информации на принтер состоит в использовании метода Print, связанного с объектом Printer. Метод Print учитывает ориентацию страницы и может использовать свойства CurrentX и CurrentY для точного позиционирования текста и точек на странице. Его синтаксис:
Printer. Print текст
При этом сохраняются возможности метода Print : “;” “,” Tab, Spc, а также возможность управления свойствами шрифта:
Printer. Font.Name = “Aryal”
Printer. Font.Size = 18
А изменение шрифта принтера не влияет на предыдущий текст.
Свойства объекта Printer:
Свойство | Назначение | Значения |
ColorMode | определяет тип принтера | 1-монохромный 2- цветной |
Page | номер текущей страницы | |
Pages | количество страниц | |
Copies | количество печатных копий | |
PrintQuality | качество печати (если это поддерживает драйвер принтера) | 1- черновая печать 2-низкое разрешение 3-среднее разрешение 4-высокое разрешение |
CurrentX, CurrentY | Текущие координаты текста | |
Fonts | доступные шрифты принтера | |
FontCount | кол. доступных шрифтов принтера | |
Font.Name,Font.Size, Font.Bold,Font.Italic... | характеристики шрифта | |
ScaleMode | ед. измерения масштаба страницы | 0-пользователя 1-твипы (по умолчанию) 2-пункты 3-пикселы 4-символы 5-дюймы 6-мм 7-см |
ScaleLeft | Расстояние от левой границы | |
ScaleTop | ||
ScaleWidth | ||
ScaleHeight |
Методы объекта Printer:
Метод | Содержание |
Печать страницы | |
NewPage | Перейти на новую страницу |
EndDoc | Закончить работу с документом. (Освобождение памяти и пересылка страниц в диспетчер печати) |
Scale | определяет координатную систему пользователя |
TextHeight | Определяет высоту символа |
TextWidth | Определяет ширину символа |
Пример. Форма содержит командную кнопку “Печать”. Программный код выводит на печать 2 страницы. На первой печатается “Стр.1”. На второй “Стр.2” .
Private Sub cmdPrint_Click()
Printer.Print “Стр.”+Str(Printer.Page)
Printer. NewPage
Printer.Print “Стр.”+Str(Printer.Page)
Printer. EndDoc
EndSub
Объект Screen.
Объект Screen позволяет управлять размещением форм и выводом информации на экране.
Свойства Объекта Screen.
Свойство | Назначение |
MousePointer | указатель мыши |
Fonts | доступные шрифты экрана |
FontCount | кол. доступных шрифтов экрана |
Width | ширина экрана (в твипах) |
Height | высота экрана |
Методов нет.
Пример. Установить размер формы равной 50% от размера экрана.
Private Sub Form_Load()
Me. Width=Screen. Width/2
Me. Height=Screen. Height /2
EndSub
Работа с файлами.
Элементы управления для работы с файлами
FileListBox- список файлов.
Списки файлов выводят по умолчанию имена файлов в текущем каталоге. Большинство свойств списка файлов аналогичны обычному списку (размеры, расположение на форме, цвет, шрифт, вертикальная линейка прокрутки). Аналогично списки файлов могут реагировать на все события обычных списков. Однако для выбора файлов обычно используется не одинарный, а двойной щелчок мыши DblClick.
Основные свойства Списка файлов:
Свойство | Содержание |
List | Массив членов списка файлов |
ListCount | Кол. членов списка файлов |
ListIndex | Индекс массива |
FileName | Обозначение файла |
Path | Текущий Путь для списка файлов |
Pattern | Фильтр, шаблон. Задает вид отображаемых в списке файлов |
Например, имя выбранного файла можно определить как filFile.List(ListIndex) или как свойство FileName. Вывести список файлов в массив FileNames$( I%) можно с помощью следующего кода:
For I%=0 to filFile.ListCount - 1
FileNames$(I%) = filFile.List(I%)
Next I%
Свойство Pattern задает тип отображаемых файлов или шаблон * , ?. По умолчанию фильтр установлен в значение *.* . Несколько фильтров отделяются друг от друга “; “ . Изменение свойства Pattern активизирует событие PatternChange.
Свойство Path устанавливает или возвращает текущий путь для списка файлов. Однако для изменения текущего пути в операционной системе следует использовать команду ChDir. Изменение свойства Path активизирует событие PathChange. Изменение свойства FileName активизирует событие и PatternChange и PathChange.
События Списка файлов:
События | Описание |
Click | |
DoubleClick | |
MouseDawn | |
MouseUp | |
MouseMove | |
KeyUp,KeyDawn,KeyPress | |
DragDrop, DragOver | |
GotFocus,LostFocus | |
PathChange | Изменение текущего пути для списка файлов |
PatternChange | Изменение шаблона для отображения файлов в списке |
Пример события PathChange
Sub File1_PathChange ()
Label1.Caption = "Path: " & Dir1.Path ' Show path in label.
End Sub
Sub Dir1_Change ()
File1.Path = Dir1.Path ' Set file path.
End Sub
Sub Form_Load ()
Label1.Caption = "Path: " & Dir1.Path ' Show path in label.
End Sub
Sub Drive1_Change ()
Dir1.Path = Drive1.Drive ' Set Dir path.
End Sub
Sub Dir1_Change ()
File1.Path = Dir1.Path ' Set File path.
End Sub
DirectoryListBox- список каталогов.
Элемент управления DirListBox - отображает дерево каталогов текущего диска. Содержимое списка каталогов обновляется при двойном щелчке мыши. Подкаталоги текущего каталога нумеруются от 0 до ListCount - 1. Сам текущий каталог имеет индекс -1, родительский -2, выше -3 , ...При двойном щелчке мыши вызывается событие Change и меняется значение свойства Path.