Програмування в середовищі VB 5.0
У додатках VB 5.0 виконувані рядки повинні розміщуватися всередині процедур або функцій. Оператори в VB рідко використовують номери рядків, а будь-які з них зазвичай починаються з нового рядка. Строки обмежені довжиною в 1023 символу. можна розширювати рядка, використовуючи символ "_" після пробілу в кінці рядка. Кілька операторів можна поєднувати в одному рядку, розділяючи їх ":".
Коментарі задаються верхній лапками ( '), або оператором REM. Коментар може бути виведений окремим рядком, або в кінці рядка. У другому випадку краще використовувати лапки ( '), ніж 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 використовує значення 0 для False і -1 для True (чи будь-яке нульове значення).
Можна використовувати наступне вираз для зміни властивості на протилежне
cmdExit.Visible = Not (cmdExit.Visible).
Змінні. Імена змінних менше 255 символів починаються з літери, за якою йдуть інші літери, цифри або символ "_". Регістр значення не має. В якості імен змінних можна використовувати зарезервовані слова, наприклад, Print. Прийнято використовувати змішаний регістр при завданні імен змінних, що складаються з декількох слів, наприклад, CurrentValue.
Типи змінних. Використовується 14 стандартних типів змінних. Можна визначити і власний тип. Основні типи:
String - рядкові змінні. Для позначення цього типу можна додати символ "$" до кінця імені.
Наприклад, Message $ = txtDisplay.Text
Integer - цілочисельних мінлива в діапазоні -32768? 32767. Для позначення в кінці імені додається "%" арифметичний оператор виконується швидко.
Наприклад, IntVar% = 5
LongInteger - довге ціле від -2147483648 до 2147483647. Позначається "&".< br />
LongInt & = 123456789.
SinglePrecision зберігає дробові числа з точністю до 7 цифр. Для на чисел може досягати 38 знаків з позначенням "!". Обчислення ч даними змінними буде приблизними.
DoublePrecision "#". Числа з точністю до 16 цифр і довжиною до 300 символів. Обчислення теж приблизні, а швидкість невелика. Використовується для наукових розрахунків.
Currency - використовується під час перетворення десяткових чисел в двійкову форму і навпаки. Позначення - "@". Може мати до 14 цифр до коми і до 4 цифр - після. Використовується для фінансових розрахунків.
Date - значення дати і часу від 00 час.1 января.100 року до 00час.31 декабря.9999 р. Значення позначається "#".< br />
Time = # May 5, 1999 #
Byte - для зберігання цілих чисел від 0 до 255. Заощаджує оперативну пам'ять і розміри масивів. Використовується також при роботі з двійкової сумісності.
Variant - дані будь-якого типу. Якщо VB не знає тип прийнятих даних, використовується цей тип. Використання його уповільнює роботу програм, тому що вимагає часу і ресурси для операцій перетворення типів.
На відміну від інших версій Basic в одній програмі не можна використовувати одні й ті ж імена змінних, що відрізняються тільки типом. Наприклад, A% і А!
При першому використанні змінної VB тимчасово привласнює змінної тип Variant і пусте значення. Це значення зникає в той момент, коли змінної привласнюється реальне. Будь-який тип даних має своє "порожнє" значення. Для String це рядок нульової довжини "". Для чисельних змінних це 0.
Можна не використовувати ідентифікатори для позначення типу змінної, а використовувати оператор 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 вважає:
1) Якщо число не має десяткового дробу і лежить в діапазоні від -327686 +32767, то це Integer.
2) Якщо не має десяткового дробу і лежить в діапазоні для Long Integer, то це Long Int.
3) Якщо має десяткову крапку і лежить в діапазоні для чисел із звичайною точністю (7 цифр), то це Single precision.
4) Якщо має десяткову крапку, але лежить поза діапазону, то це Double precision.
Такі приблизні розрахунки часто приводять до проблем. Наприклад, VB вважає, що тип результату з двома цілими числами є ціле. Наприклад результат Print 123456? 789 виходить за рамки цілого і виникає помилка переповнення. Тоді необхідно використовувати ідентифікатор хоча б для однієї змінної Print 123456 &? 789.
Можна також використовувати вбудовані функції для перетворення типів, наприклад, LInt - округлює число до цілого, Clong - до довгого цілого, Cvar - перетворить до Var.
Якщо проводяться операції зі змінними Variant, то не виникає проблем з перетворенням типів.
Крім звичайних, десяткових чисел, VB використовує двійкові і шістнадцяткові. Останні позначаються з префіксом & H. Наприклад, число 49 = & H31.
Шістнадцяткові цифри використовуються для кодування різних кольорів: будь-який код кольору складається з 6 шістнадцяткові цифр від & H000000 & = 0 до & HFFFFFF & (довге ціле) (16777215).
Взагалі конкретний колір визначається кількістю червоного R, G зеленого і синього кольорів B у всіляких сполученнях. У коді кольору VB дві останні цифри означають кількість червоного, дві середні - кількість зеленого, а два перших - кількість синього, наприклад
& H0000FF & - максимально червоний
& H00FF00 & - максимально зелений
& HFF0000 & - максимально синій
& H000000 & - чорний
& HFFFFFF & - білий
& H00FFFF & - жовтий (червоний + зелений)
& H808080 & - сірий (рівні кількості кольорів)
Константи
Для незмінних значень в програмі використовуються константи. Константи оголошуються аналогічно змінним, за тими ж правилами: ім'я містить не більше 200 символів, перший символ буква. Якщо в програмі використовується лише одна форма, то константу можна оголосити у розділі DeclarationHous для об'єкта General. Або ж можна й безпосередньо у процедурі, але це гірше. Константу оголошують через зарезервовані слова Const. Наприклад,
Const Pi = 3? 14159
Const Course = "Informatics"
VB5 має тільки набір вбудованих констант, наприклад, VbCrLf або VbOrOnly. Їх можна додавати до тексту програми з вікна Object Browser (F2 або меню View). Щоб вставити Const в програмі:
1) Курсор повинен бути у вікні коду.
2) У вікні Object Browser клацнути на кнопці Copy to Clipboard.
3) Перейти в програмі на місце вставки і натиснути 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 (дані для, № до позиції)
= Right (рядок, с № позиції)
Функцію Mid можна використовувати для зміни змісту всередині поточного рядка. Наприклад
X $ = "Best Basic"
Mid (X $, 1,5) = "Quick"
яка кількість символів
з якого символу буде взято з нового рядка
вставляється нова
рядок поверх старої частини
= Insert ([початкова позиція], рядок для пошуку, підрядок)
чи є даний рядок частиною іншого рядка, видає номер позиції, з якої починається підрядок.
Text $ = "QuickBasic"
X $ = Instr (1, Text $, "Basic") = 6.
Якщо підрядок не знайдено Instr повертає нульове значення (False).
Приклад.
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
Do While
Do
Вираз
Loop While умова
або
Do While умова
Вираз
Loop
В таких циклах можна об'єднувати кілька умов, наприклад
Do While X
?
?
Loop
Цикл While/Wend
While умова
.....< br />
Wend
Наприклад, While x> 0
S = S + x
Wend
Може бути декілька вкладених циклів. Будь-який Wend відноситься до найближчого While. Do __ Loop дає структуру і гнучкість циклу.
Умовні оператори
If умова Then оператор
Наприклад, If N> = 0 and N
Якщо у виразі If __ Then обробляється кілька операторів, тоді використовується так званий блок If __ Then.
While Wend
Замість Do While x = 0
Loop
While x = 0
Wend
If умовний вираз Then (Enter) кілька операторів Else необяза-кілька операторів тельно End If If вираз Then оператор Else If вираз Then оператор. . . Else оператор End If
Оператор 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 Then Else
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 ...........< br />
Static Massiv A (20)
Створення динамічних масивів.
а) у формі
У розмірі декларації форми Dim DYNMAS () As String
А всередині процедури виділяємо потрібний розмір
Private Sub ...........< br />
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 ,"$###.###")< br />
Іменовані формати
Іменовані формати є вбудованими форматами 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, "###,###.##")< br />
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".
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.
Основні властивості Списку каталогів.
Властивість Зміст
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 #
.....< br />
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) в байтах.
Двійкові файли
Двійкові файли - окремий випадок файлів довільного доступу, проте розмір в них дорівнює 1. Ви оперуєте байтами і завжди можна записати або прочитати будь-який байт файлу, вказавши лише його позицію у файлі. У режимі двійкового доступу можна відкрити як послідовний файл, так і файл прямого доступу. Можна одночасно і читати, і записувати у файл.
Є наступні оператори:
Відкриття - Open "назва файлу" For Binary As # FileNum
Запис у файл - Put # FileNum, № байта у файлі, ім'я змінної для запису у файл
Читання з файлу - Get # FileNum, № байта у файлі, ім'я змінної для запису у файл.
Доступ до даних в VB
VB надає засоби доступу до даних, які дають можливість створювати та використовувати системи БД, керуючих даними програми.
VB дозволяє звертатися до баз даних багатьох популярних форматів: MS Access, Btrieve, dBase, FoxPro, Paradox, а також баз даних ODBS систем клієнт-сервер, таким як MS SQL Server.
У стандартній редакції VB інструменти роботи з даними включають:
а) процесор БД Microsoft Jet;
б) елемент управління Data;
в) Об'єктовий інтерфейс програмування Dao (Data Access Objects).
Два останніх інструменту забезпечують два методв взаємодії з процесором Jet.
Елемент керування Data дає обмежені можливості звернення до існуючих баз даних практично без програмування. Модель DAO - програмний інтерфейс, що забезпечує повний контроль над БД. Це колекція об'єктних класів, які моделюють структуру реляційної БД. Вони забезпечують властивості і методи, які дозволяють виконувати всі операції з БД, такі як створення БД, визначення таблиць, полів та індексів, у