Учебная работа. Реферат: Основы Visual Basic 50
В приложениях VB 5.0 исполняемые строчки должны располагаться снутри процедур или функций. Операторы в VB изредка употребляют номера строк, а любые из их обычно начинаются с новейшей строчки. Строчки ограничены длиной в 1023 знака. можно расширять строчки, используя знак “_” опосля пробела в конце строчки. несколько операторов можно соединять воединыжды в одной строке, разделяя их “ : ”.
Комменты задаются верхней кавычкой (‘), или оператором REM. Комментарий быть может выведен отдельной строчкой, или в конце строчки. Во 2-м случае лучше применять кавычку (‘), чем REM, т.к. REM тут просит разделителя (:). к примеру,
DIM FARENG ‘ переменная для вычисления t0
по Фаренгейту
либо
DIM FARENG : REM переменная для вычисления t0
по Фаренгейту
Оператор End — программка останавливается. Опосля оператора End запираются все окна, открытые программкой, а сама она стирается из памяти. Снутри приложения VB быть может сколько угодно операторов End, но обычно лучше применять лишь один оператор End в процедуре обработки событий QueryUnload для главный формы. В этом случае все операторы End заменяются на Unload Me, который вызывает для себя QueryUnload для формы.
Одним из главных операторов является присваивание значения переменным и установка значений параметров.
К примеру,
1) Result = 0.5 ? 20
имя значение
переменной
Можно применять оператор LET
2) объект.свойство = значение
txtDisplay.Text = “ “
характеристики по дефлоту
У хоть какого объекта VB есть свойство по дефлоту. к примеру, для текстового поля это свойство Text. При ссылке на данное свойство можно не указывать его имя.
К примеру, txtDisplay=“Привет!”
Некие характеристики могут принимать значения TRUE либо FALSE. В VB5 имеются интегрированные константы для обозначения данных параметров, к примеру, cmdExit=False будет скрывать командную клавишу, пока не покажется выражение cmdExit=True.
Снутри себя VB употребляет
Можно применять последующее выражение для конфигурации характеристики на обратное
cmdExit.Visible = Not (cmdExit.Visible).
Переменные. Имена переменных наименее 255 знаков начинаются с буковкы, за которой следуют остальные буковкы, числа либо знак “_”. Регистр значения не имеет. В качестве имен переменных недозволено применять зарезервированные слова, к примеру, Print. Принято применять смешанный регистр при задании имен переменных, состоящих из нескольких слов, к примеру, CurrentValue.
Типы переменных. Употребляется 14 обычных типов переменных. Можно найти и свой тип. Главные типы:
String — строковые переменные. Для обозначения этого типа можно добавить знак “$” к концу имени.
К примеру, Message $ = txtDisplay.Text
Integer — целочисленная переменная в спектре -32768 ?+32767. Для обозначения в конце имени добавляется “%” арифметический оператор производится стремительно.
к примеру, IntVar% =5
LongInteger — длинноватое целое от -2147483648 до +2147483647. Обозначается “&”.
LongInt&= 123456789.
SinglePrecision хранит дробные числа с точностью до 7 цифр. Для на чисел может достигать 38 символов с обозначением “!”. Вычисления ч данными переменными будет ориентировочным.
DoublePrecision “#”. Числа с точностью до 16 цифр и длиной до 300 знаков. Вычисления тоже ориентировочны, а скорость маленькая. Употребляется для научных расчетов.
Currency — употребляется при преобразовании десятичных чисел в двоичную форму и напротив. Обозначение — “@”. Может иметь до 14 цифр до запятой и до 4 цифр — опосля. Употребляется для денежных расчетов.
Date — значения даты и времени от 00 час.1 января.100 года до 00час.31 декабря.9999 г.
Time = # May 5, 1999 #
Byte — для хранения целых чисел от 0 до 255. Сберегает оперативную память и размеры массивов. Употребляется также при работе с двоичными файлами.
Variant — данные хоть какого типа. Если VB не понимает тип принимаемых данных, употребляется этот тип. Внедрение его замедляет работу программ, т.к. просит времени и ресурсы для операций преобразования типов.
В отличие от остальных версий Basic в одной программке недозволено применять одни и те же имена переменных, различающихся лишь типом. к примеру, A% и А!
При первом использовании переменной VB временно присваивает переменной тип Variant и пустое
Можно не применять идентификаторы для обозначения типа переменной, а применять оператор Dim. Оператор Dim служит для объявления типов переменных.
Dim Years As Integer
Dim Amount As Currency
. . . .
Объявления можно сочетать в одной строке.
Dim Years As Integer, Amount As Currency
Dim Result без типа присваивает переменной тип Variant.
Если в программке употребляются необъявленные переменные, просто допустить ошибку при написании их имени. В этом случае употребляется принудительное объявление переменных при помощи оператора Option Explicit. Этот оператор не употребляется в определенных процедурах обработки событий, а располагается в разделе General формы, чтоб быть легкодоступным всем процедурам обработки событий. Опосля того, как VB встречает оператор Option Explicit, он не дозволяет наиболее применять необъявленные переменные. Этот оператор можно применять для конфигурации значений по дефлоту.
Область видимости переменных
В программках VB5 все переменные изолированы снутри процедур. Другими словами переменная Result в одной процедуре не влияет на значение переменной с этим же именованием в иной процедуре. Другими словами переменные являются локальными по отношению к процедурам, если не обозначено по другому.
время от времени нужно, чтоб какая-то переменная была доступна всем процедурам формы. Такие переменные именуют переменными уровня формы либо модуля. Переменные уровня формы также объявляются в разделе General при помощи операторов Private либо Dim.
В огромных проектах, в каких процедуры и формы хранятся в отдельных модулях, а не подключаются к форме, можно объявить глобальную переменную, доступную в хоть какой части проекта.
Это делается в разделе Declarations хоть какого модуля кода:
Public Amount As Single
либо Global Amount As Single
Когда VB вызывает функцию обработки действия, старенькые значения локальных переменных уничтожаются. Они принимают значения по дефлоту. Такие переменные именуются динамическими. Но в неких вариантах нужны статические переменные, которые не инициализируются повторно при вызове процедуры. Нередко такие переменные употребляются для счетчиков, их употребляют, чтоб создать элементы управления видимыми либо невидимыми. Чтоб объявить статическую переменную снутри процедуры нужен оператор Dim поменять на Static.
Static Amount As Single, Is_Visible As Boolean.
Если нужно, чтоб все переменные в процедуре были статическими, нужно добавить
Static Private Sub cmdLom_Click()
Строчки
Операция конкатенации для сложения нескольких строк + либо &
к примеру, A$ = “Иванов”
B$ = “Иван”
C$ = “Иванович”
D$ = A$ & B$ & C$
либо D$ = A$ + B$ + C$
Отличие. При помощи “&” можно соединять воединыжды строковые и остальные типы. к примеру, C = A% & B$, поменяется их тип на Variant.
Для перехода к новейшей строке при печати знаков (перевод каретки) употребляется интегрированная const VbCrLf. к примеру, чтоб порвать строчку в информационной панели либо в многостроковом текстовом поле можно
Message $ = “1-я строчка”
Message $ = Message $+VbCrLf + “2-я строчка”
MsgBox Message $
Замечание. Если в программке употребляются числа и они не присваиваются переменной Variant, то VB считает:
Если число не имеет десятичной точки и лежит в спектре от -327686 +32767, то это Integer.
Если не имеет десятичной точки и лежит в спектре для Long Integer, то это Long Int.
Если имеет десятичную точку и лежит в спектре для чисел с обыкновенной точностью (7 цифр), то это Single precision.
Если имеет десятичную точку, но лежит вне спектра, то это Double precision.
Такие ориентировочные расчеты нередко приводят к дилеммам. к примеру, VB считает, что тип результата с 2-мя целыми числами есть целое. к примеру итог Print 123456 ?789 выходит за рамки целого и возникает ошибка переполнения. Тогда нужно применять идентификатор хотя бы для одной переменной Print 123456& ?789.
Можно также применять интегрированные функции для преобразования типов, к примеру, LInt — округляет число до целого, Clong — до длинноватого целого, Cvar — конвертирует к Var.
Если выполняются операции с переменными Variant, то не возникает заморочек с преобразованием типов.
Кроме обыденных, десятичных чисел, VB употребляет двоичные и шестнадцатеричные. Крайние обозначаются с префиксом &H. к примеру, число 49 = &H31.
Шестнадцатиричные числа употребляются для кодировки разных цветов: хоть какой цветовой код состоит из 6 шестнадцатиричных цифр от &H000000& = 0 до &HFFFFFF& (длинноватое целое) (16777215).
Совершенно определенный цвет определяется количеством красноватого R, зеленоватого G и голубого цветов B во различных сочетаниях. В коде цвета VB две крайние числа означают количество красноватого, две средние — количество зеленоватого, а две 1-ые — количество голубого, к примеру
&H0000FF& — очень красноватый
&H00FF00& — очень зеленоватый
&HFF0000& — очень голубий
&H000000& — темный
&HFFFFFF& — белоснежный
&H00FFFF& — желтоватый (красноватый + зеленоватый)
&H808080& — сероватый (равные количества цветов)
Константы
Для постоянных значений в программке употребляются константы. Константы объявляются аналогично переменным, по этим же правилам: имя содержит не наиболее 200 знаков, 1-ый знак буковка. Если в программке употребляется лишь одна форма, то константу можно объявить в разделе DeclarationHous для объекта General. Либо же можно и конкретно в процедуре, но это ужаснее. Константу объявляют через зарезервированные слова Const. К примеру,
Const Pi = 3?14159
Const Course = “Informatics”
VB5 имеет лишь набор интегрированных констант, к примеру, VbCrLf либо VbOrOnly. Их можно вставлять в текст программки из окна Object Browser (F2 либо меню View). Чтоб вставить Const в программке:
Курсор должен быть в окне кода.
В окне Object Browser щелкнуть на кнопочке Copy to Clipboard.
Перейти в программке на пространство вставки и надавить Ctrl+V.
Интегрированные функции
Особенное информация хранится в текстовом формате либо в формате ariant. Внедрение же неявных преобразований типов из Variant нередко приводит к дилеммам и является наиболее неспешным.
Строковые функции:
= Space (число пробелов) — выдает строчку, состоящую из одних пробелов, при этом число знаков в строке определяется параметром в скобках.
= String (число, строковое выражение $) — сформировывает строчку, содержащую однообразные знаки.
к примеру, X$=String (10, “z”) — 10z
= Len (строковое выражение) — длина текущей строчки с неуввязками и написанными знаками.
= Mid (строчка, начало [, длина])
Mid (“Visual Basic”, 1,6) = “Visual”
Mid (“Visual Basic”, 8,6) = “Basic”
Mid (“Visual Basic”, 8) = “Basic”
Пример. Подсчет числа точек в строке
Points % = 0
Length % = Len (Text $)
For I% = 1 to Length %
If Mid (Text $, I%, 1) = “.” then
Points $ = Points $ + 1
End If
Next I%
= Left (cтрока, № до позиции)
= Right (строчка, с № позиции)
Функцию Mid можно применять для конфигурации содержания снутри текущей строчки. К примеру
X $ = “Best Basic”
Mid (X $,1,5) = “Quick”
какое количество знаков
с какого знака будет взято из новейшей строчки
вставляется новенькая
строчка поверх части старенькой
= Insert ([начальная позиция], строчка для поиска, подстрока)
является ли данная строчка частью иной строчки, выдает номер позиции, с которой начинается подстрока.
Text $ = “QuickBasic”
X $ = Instr (1, Text $, “Basic”)=6.
Если подстрока не найдена Instr возвращает нулевое
Пример.
If Instr (Text $, “?”) then
Print “знак найден”
Else
Print “Не найден”
End If
= LСase, = UСase — конвертирует все знаки строчки в нижний (верхний) регистр
Заместо Lcase $ Ucase$
= Str lomp — для сопоставления строк
Пусть X = StrComp (A$, B$) =
Если A$ либо B$ пуста, то х=NULL
Если применять StrComp (A$,B$,1) — регистр не учитывается, а если StrComp (A$,B$,0) — регистр учитывается.
= Trim (строчка $) — уничтожает пробелы начале и конце строчки
LTrim (строчка $) — уничтожает пробелы в левой части строчки
RTrim(строчка $) — уничтожает пробелы в правой части
Все строковые функции, кроме Mid, не изменяют строчку, а делают ее копию и позже с ней работают.
Управляющие структуры в программке
Определенные циклы
For ___ Next
For I% = 1 to 10 (% — целочисленный тип для убыстрения работы цикла)
Print I%
Next I%
Цикл заканчивается, не в тот момент, когда значение счетчика приравнивается конечному, а когда оно превосходит его.
Пример. Печать всеми доступными шрифтами экрана.
Private Sub Form_Click()
Dim I As Integer
For I=0 to Screen.FontCount — 1
FontName = Screen.Fonts (I)
Print “Это шрифт”; Screen.Fonts (I)
Next I
End Sub
Неопределенные циклы
Не производятся фиксированное число раз. Цикл может производиться либо нет зависимо от результата, вычисляемого снутри цикла
Do
Выражение
Loop Until производится условие
Пример. Проверка пароля
Private Sub Form_Load ()
Do
X$ = InputBox$ (“Пароль ?”)
Loop Until X$ = “VB”
End Sub
Для остановки нескончаемого процесса употребляют клавиши “Break” либо Run|End либо закрыть приложение. В программке можно применять оператор Exit Do (либо Exit For), которые переводят программку к оператору последующему опосля цикла.
Сложные неопределенные циклы
В неопределенных циклах проверка происходит в конце цикла и счетчика возрастает еще на 1. время от времени это вызывает избыточное обновление счетчика. Можно передвинуть проверку условия на начало цикла:
Do Until условие
тело цикла Выражение
Loop
Do While
Do
Loop Until аналогичен
Do
Loop While условие
Пример.
Do Do
Loop Until N>5 ? Loop While N <=5
Do While
Do
Выражение
Loop While условие
либо
Do While условие
Выражение
Loop
В таковых циклах можно соединять воединыжды несколько критерий, к примеру
Do While X<=0 and txtDisplay.Text=“ “
?
?
Loop
Цикл While /Wend
While условие
. . . . .
Wend
к примеру, While x>0
S = S+x
Wend
Быть может несколько вложенных циклов. Хоть какой Wend относится к наиблежайшему While. Do __ Loop дает структуру и упругость цикла.
Условные операторы
If условие Then оператор
к примеру, If N>=0 and N<=9 Then Print “Ok”
Оператор Select Case
Дозволяет обрабатывать несколько вариантов выбора.
Select Case переменная либо выражение
Case оператор проверки условия
действие 1
.
.
.
Case . . . . . .
действие n-1
End Select
Пример:
Select Case Ball
Case Is < 13 дозволяет проверить
Grade = 2
Case Is < 18
Grade = 3
Case Is < 22
Grade = 4
Case Else
Grade = 5
End Select
Пример 1. If ThenElse
Private Sub Form_QueryUnload(Cansel As Integer, UnloadMode As Integer)
X % = MgBox(“Вы убеждены?”, VbYesNo)
If X % = VbNo Then
Cancel = True
Else
Cancel = False
End IF
End Sub
Пример 2.
If optColor1.Value Then
Color$ = “Красноватый”
Else If optColor2.Value Then
Color$ = “Зеленоватый”
Else If optColor3.Value Then
Color$ = “Голубий”
Else
Color$ = “Белоснежный”
End If
Пример:
Select Case Den
Case 1
Print “Пн”
Case 2
Print “Вт”
.
.
.
Case 7
Print “Вс”
End Select
В фразе Case можно задавать значения переменной в виде спектра
Select Case Den
Case 1 to 5
Print “Рабочий денек”
Case Else
Print “Выходной”
End Select
или перечислением вероятных значений
Select Case Den
Case 6,7
Print “Выходной”
Case Else
Print “Рабочий денек”
End Select
Массивы
2 вида массивы: управляющие и массивы переменных (обыденные массивы либо списки).
Управляющие массивы состоят из нескольких однотипных частей управления, использующих общие характеристики, по отличающимся порядковым номерам либо индексам. Быть может не наиболее 255 частей в таком массиве. При всем этом новейшие элементы на форме помещаются на пространство начальных частей управляющего массива. Потому при размещении на форме их следует позиционировать и двигать, чтоб они не перекрывали друг друга. К примеру, можно сделать на форме матрицу надписей либо текстовых полей.
Одномерные массивы либо списки определяются именованием и положением элемента в перечне. к примеру данные о выпуске продукции за 12 месяцев.
Могут быть фиксированные и динамические списки. размеры их могут быть значительны и определяются объемом вольной памяти.
У фиксированных списков размер не изменяется, а динамические списки могут поменять собственный размер. Для фиксированных списков память выделяется сначала работы программки и существует наименьший риск переполнения памяти.
Динамические списки наиболее гибки в работе.
Списки могут быть видимыми всему приложению, данной форме (модулю) либо лишь одной процедуре.
Создание фиксированного перечня:
а) в форме (модуле). Описание помещается в разделе деклараций формы (модуля)
Dim Massiv$(20)
доступен хоть какой процедуре модуля либо формы;
б) в границах всего проекта (глобальный)
Public Massiv(20) As String — 21 элемент от 0 до 20
либо Global
в) локальный массив, который сохраняется до последующего вызова процедуры
Private Sub ………..
Static Massiv A(20)
Создание динамических массивов.
а) в форме
В размере декларации формы Dim DYNMAS() As String
А снутри процедуры выделяем подходящий размер
Private Sub ………..
Dim N %
ReDim DYNMAS(N) As String
При работе команды ReDim информация в массиве пропадает.
Для сохранения инфы при изменении размера массива
ReDim Preserve DYNMAS(N+1) As String
либо (N-1) удалит крайний элемент
б) Глобальный динамический перечень, видимого в границах всего проекта
Public DYNMAS() As String
либо Global
Дальше можно применять ReDIM в хоть какой процедуре всего проекта.
Ввести данные в массив можно при помощи INPUT BOX, текстового поля.
Для конфигурации нумерации в массиве не с 0, а с 1 — оператор Option Base 1 в разделе деклараций формы (модуля).
Можно задавать массив спектром значений
вместоDim A(19)
Dim A (1980 TO 2000)
Освобождение ОП от динамический массивов Erase DYNMAS/ Для фиксированных списков Erase лишь очищает массив.
окна ввода
Окна ввода- это иная возможность, кроме текстовых полей, для ввода инфы. Функция InputBox$ выводит на экран модальную диалоговую панель, которая в отличие от текстовых полей имеет фиксированный размер окна. У окна ввода есто строчка заголовка и 4 элемента: подсказка, командные клавиши OK и Cancel и поле ввода. Синтаксис функции: Строковая переменная=
InputBox(“подсказка”[,заголовок][поумолчанию][,X][,Y][,файл справки, контекст])
где подсказка- текстовая строчка либо строковая переменная (1024 знака),
заголовок -содержание строчки заголовка окна,
по дефлоту — изначальное содержимое окна ввода,
X,Y- расстояние меж левым (верхним) краями экрана и окна ввода. Если характеристики не заданы, то окно размещается по центру на 1/3 высоты экрана.
к примеру, MyInput$=InputBox(“Введи число”, “Запрос”,”0”,100,200)
Вывод инфы
Для вывода инфы конкретно на форме употребляется способ Print. Его синтаксис:
имя формы.Print выражение
к примеру: frmHello.Print “Привет !”
VB5 выводит информацию, начиная с того места, которое определяют характеристики CurrentX и CurrentY- горизонтальная и вертикальная позиции. При использовании способа Cls для чистки содержимого формы CurrentX и CurrentY=0 и способ Print выводит информацию, начиная с левого верхнего угла.
Вывод инфы можно производить разными шрифтами, зависимо от применяемого оборудования и программного обеспечения. Если операционная система не находит данный шрифт, она выбирает ближний аналог. Для выбора шрифта в программном коде употребляется последующий оператор присваивания:
ИмяОбъекта-контейнера.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:
Способ
Содержание
Print
Печать странички
NewPage
Перейти на новейшую страничку
EndDoc
Окончить работу с документом. (Освобождение памяти и пересылка страничек в диспетчер печати)
Scale
описывает координатную систему юзера
TextHeight
Описывает высоту знака
TextWidth
Описывает ширину знака
Пример. Форма содержит командную клавишу “Печать”. Программный код выводит на печать 2 странички. На первой печатается “Стр.1”. На 2-ой “Стр.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 задает тип отображаемых файлов либо шаблон * , ?. По дефлоту фильтр установлен в
Свойство 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 и изменяется
Главные характеристики Перечня каталогов.
Свойство
Содержание
List
Массив членов перечня каталогов
ListCount
Кол. членов перечня каталогов
ListIndex
Индекс массива
Path
Текущий Путь для перечня каталогов
Parent
Для доступа к свойствам, событиям и способам родительской формы данного элемента
Действия Перечня каталогов
Действия
Описание
Click
MouseUp, MouseUp, MouseMove
KeyUp,KeyDawn,KeyPress
DragDrop, DragOver
GotFocus,LostFocus
Change
Изменение в перечне каталогов
Для того. чтоб изменение в перечне каталогов отразилось перечне файлов, можно применять функцию:
Private Sub dirBox_ Change()
filFile1.Path = dirBox.Path
End Sub
При всем этом для перечня каталогов Path показывает избранный каталог, а для перечня файлов — каталог, файлы которого отражаются в перечне.
DriveListBox- перечень дисков.
В отличии от прошлых частей перечень дисков является выпадающим. Перечень дисков показывает текущий диск, а когда юзер щелкает на кнопочке со стрелкой, выводит перечень всех доступных дисков.
Главные характеристики Перечня дисков
Свойство
Содержание
Drive
Описывает текущий диск
ListCount
Кол. членов перечня дисков
ListIndex
Индекс массива дисков
List
Массив членов перечня дисков
Parent
Для доступа к свойствам, событиям и способам родительской формы данного элемента
Действия Перечня дисков
Действия
Описание
KeyUp,KeyDawn,KeyPress
DragDrop, DragOver
GotFocus,LostFocus
Change
Изменение в перечне дисков
Главным свойством является свойство Drive , которое употребляется для получения и установки текущего диска. Это свойство употребляется для синхронизации работы перечня дисков и перечня каталогов. К примеру,
Private Sub drvBox_ Change()
dirBox.Path = drvBox. Drive
Ch Drive drvBox. Drive ‘ Если необходимо поменять текущий диск ОС
End Sub
Файлы поочередного доступа
Употребляются когда:
а) изредка вносятся конфигурации
б) информация в файле обрабатывается от начала до конца
в) если необходимо добавлять информацию в конец файла.
Для совершения операции чтения либо записи с файлом его необходимо открыть командой Open. Опосля Open следует имя файла, строковая переменная либо строчка в двойных кавычках. Если файл не текущем каталоге, необходимо указать путь к нему.
Запись инфы в файл:
Open “название файла” for Output as # 1
# 1 — это идентификатор файла — число от 1 до 255 с эмблемой #. Наибольшее число сразу открытых файлов определяются параметром в Config.sys.
По команде Open резервируется файловый буфер в памяти компа. По мере наполнения буфера активизируются соответственный диск и весь блок инфы посылается непрерывным потоком на диск (количество будет устанавливаться в Config.sys). Опосля окончания работы с файлом он запирается командой Close # идентификатор файла. Команда Close сбрасывает информацию на диск и очищает буфер. Для сброса содержимого буфера на диск (в критичных ситуациях) употребляется команда Reset. Для ввода инфы в файл можно применять команду Print #
“ Запись в файл
Open “File 1” For Output As #1
Print #1, “1 2 3 4 5 ” либо Print #1, txtDisplay.Text
Close #1
Если в текущем каталоге есть файл с таковым именованием, то данной нам командой он будет уничтожен.
Close без характеристик закрывает все файлы.
Для определения размера открытого файла можно применять команду LOF (идентификатор файла)
Open “File 1” For Output As #1
Print #1, “1 2 3 4 5 ”
Print LOF(1)
Заместо Print можно применять Write # идентификатор файла, перечень переменных.
Чтение из файла
Open ”название файла” For Input As # идентификатор файла
Задается вольный идентификатор, который в данный момент не употребляется в программке. Либо так:
FileNumber % = FreeFile
Open “название файла” For Input As # FileNumber %
Опосля этого можно применять оператор Line Input # для построчного чтения инфы из файла:
Open “File1” For Input As #1
Line Input #1, A$ воспринимает в A$ всю информацию до Enter
Print A$
Close #1
Или Input # идентификатор файла, перечень переменных, если запись при помощи Write, txtDisplay
Если файл сложной структуры, состоит из полей и записей, то файл будет читаться целыми записями командой LineInput, или можно информацию читать из отдельных полей командой Input #
к примеру, чтение записей из файла Spisok в массив
1. Определяем тип юзера
Type StudentRecord
Name As String
Adress As String
End Type
2. Объявляем массив записей типа Student как глобальную переменную
Global StudentAdress( ) As StudentRecord
Sub Proc( )
Dim FileNum As Integer, I As Integer
ReDim StudentAdress(1 to 150)
FileNum = FreeFile
Open “Spisok” For Input As # FileNum
For I=1 to 150
Input #FileNum, StudentAdress(I).Name
Input #FileNum, StudentAdress(I).Adress
Next I
Close FileNume
End Sub
Чтение текстового фала в текст, поле
. . . .
FileNum = FreeFile
Open “My.txt” For Input As FileNum
txtDisplay.Text=Input(LOF (FileNum), FileNum)
Close #FileNum
где LOF(FileNum) размер файла в б
Дозапись инфы в имеющийся поочередный файл
При всем этом строчки, которые будут выведены в файл присоединяются к строчкам, которые уже содержаться в файле. Для этого служит оператор
Open “название файла” For Append As # идентификатор файла
При всем этом:
— VB открывает файл, а если он не существует, то делает и делает соответственный буфер;
— находит конец файла на диске;
— готовит к записи в конец файла.
Пусть существует текстовый файл My.txt и необходимо дописать в его конец строчку “Доскорого свидания”:
FileNum=FreeFile
Open “My.txt” For Append As FileNum
Print #FileNum, “Доскорого свидания”
Close #FileNum
При обработке огромных файлов нередко нужно инспектировать на достижение конца файла. Для этого существует оператор EOF (идентификатор файла).
Фрагмент программки чтения инфы из файла, сделанного при помощи оператора Print #
. . . . .
B$ = “ ”
FileNum=FreeFile
Open “My.txt” For Input As #FileNum
Do Until EOF(FileNum)
Line Input #FileNum, A$
B$=B$+A$
Loop
txtDisplay.Text=B$
Close #FileNum
Файлы прямого доступа
Напоминают базу данных. файл состоит из упорядоченных записей схожего размера. Существует запись, состоящая из полей, в каких содержаться данные. Обеспечивает резвый поиск инфы, но дисковое место употребляется неэффективно.
При разработке файла указывается наибольшая длина имеющейся записи. Команда сотворения файла:
Open “MyLib.dat” For Random As # идентификатор файла
Len = длина записи, можно определять при помощи функции Len (имя переменной записи) в текущем каталоге.
Открытый файл прямого доступа быть может прочитан и записан фактически сразу.
Close # идентификатор файла — закрывает файл.
Любая запись в файле имеет номер записи. Это дозволяет работать с определенной записью. При описании записи задаются пользовательским типом:
Type Books
Auther As String *30
Title As String *40
End Type
Запись, содержащую пятой записи файла в переменную:
Get #FileNum, 5, NewBook (если NewBook типа Books)
Запись из переменной в сороковую запись файла:
Print #FileNum, 40, NewBook
Сделанные типы записей определяют размер файла прямого доступа. Размер файла определяется функцией FileLen (“название файла”). Размер записи Len(NewBook) в б.
]]>