Пятница, 17.05.2024, 12:34
Всего понемногу...
Меню сайта
Категории
Функции [9]
Операторы [9]
Разное [10]
Переменные [1]
Числа [1]
Строки [2]
Трюки [0]
Примеры [0]
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Ваши данные:
 
Главная » Статьи » Visual Basic » Операторы

Операторы VB5 (D...E)

---D---


Date = date - изменяет системную дату.

Dim MyDate
MyDate = #February 12, 1985# ' Присваиваем дату переменной
Date = MyDate ' Изменяем системную дату

[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])] или

[Public | Private] Declare Function name Lib "libname" _
[Alias "aliasname"] [([arglist])] [As type]

Этот оператор имеет 2 синтаксиса. Первый объявляет процедуру, находящуюся в DLL библиотеке (которая объявлена в ней как export). Второй объявляет функцию. Подробнее об объявлениях внешних функций здесь. Замечание: если вы объявляете функцию в разделе формы или компонента ActiveX, то она должна быть объявлена как Private, если в модуле, то Public.

' Это находится в модуле:
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) _
As Long

' А это в разделе формы:
GetWindowText Form1.Hwnd, strCapt, 255
' Теперь переменная strCapt создержит заголовок окна Form1


DefBool letterrange[, letterrange] . . .
DefByte letterrange[, letterrange] . . .
DefInt letterrange[, letterrange] . . .
DefLng letterrange[, letterrange] . . .
DefCur letterrange[, letterrange] . . .
DefSng letterrange[, letterrange] . . .
DefDbl letterrange[, letterrange] . . .
DefDec letterrange[, letterrange] . . .
DefDate letterrange[, letterrange] . . .
DefStr letterrange[, letterrange] . . .
DefObj letterrange[, letterrange] . . .
DefVar letterrange[, letterrange] . . .

С помощью этих операторов можно установить тип переменных по умолчанию. letterrange - диапазон символов, с которых должны начинаться имена переменных. Операторы должны находиться в разделе модуля.

DefInt A-K
' Переменные, имена которых начинаются с букв L до K будут
' по умолчанию объявлены как Integer. А от L до Z - как String.
' Напомню, что пример работает при выключенном Option Explicit.

DefStr L-Z
CalcVar = 4 ' Объявляется как Integer.
StringVar = "Hello there" ' Объявляется как String.

DeleteSetting appname, section[, key] - удаляет ранее записанную настройку из реестра. Напомню, что функция SaveSetting сохраняет настройку, а функция GetSetting загружает. Я почему-то не нашёл в документации путь, куда сохраняются настройки. Пришлось определять самому. Оказалось, что настройки записываются по адресу:
HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings
В этом ключе создаётся ещё один ключ с названием appname.

' Записываем что-нибудь, в нашем случае - это положение окна
SaveSetting "MyApp", "Startup", "Top", Form1.Top
SaveSetting "MyApp", "Startup", "Left", Form1.Left
' Удаляем только что записанные настройки
DeleteSetting "MyApp", "Startup"

Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] _
varname[([subscripts])] [As [New] type]] . . .

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

' AnyValue и MyValue объявляются как Variant по умолчанию
' и им присваивается начальное значение Empty.

Dim AnyValue, MyValue

' Объявляем перенную типа Integer
Dim Number As Integer

' Здесь объявление происходит в одной строчке. Переменная AnotherVar
' объявляется как Variant, т.к. её тип опущен.

Dim AnotherVar, Choice As Boolean, BirthDate As Date

' DayArray - массив, состоящий из 51-го элемента (от 0 до 50).
' Если в модуле написать Option Base 1, то индексы всех массивов будут
' начинаться с единицы. По умолчанию Option Base установлен в 0

Dim DayArray(50)

' Матрица 4 на 5.
Dim Matrix(3, 4) As Integer

' BirthDay - массив, с индексами от 1 до 10.
Dim BirthDay(1 To 10) As Date

' MyArray - динамический массив типа Variant.
Dim MyArray()


Do...Loop

Оператор цикла Do While...Loop / Do...Loop While

Эти две разновидности цикла тесно взаимосвязаны, и их часто рассматривают как один из базовых видов цикла. Как уже отмечалось, циклы For применяют в тех случаях, когда количество проходов и диапазон изменения счётчика цикла заранее известны. Циклы While предназначены для ситуаций, когда количество проходов цикла заранее не известно, но зато известно условие выхода из цикла. Синтаксис цикла While:

Do While Условие_выхода
Группа операторов
Loop

Do
Группа операторов
Loop While Условие_выхода

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

Do While 2 > 1
Degub.Print "Вечный цикл"
Loop

Если у вас случаянно получился такой цикл, то выйти из него можно при нажатии Ctrl+Break. Но это работает только в среде разработки.

Dim n As Integer
n = 100
Do While n >= 0
n = n - 1
Debug.Print n
Loop

Оператор цикла Do Until...Loop / Do...Loop Until

По своей логике цикл Until подобен циклу While с той лишь разницей, что проходы цикла выполняются до тех пор, пока условие выхода не выполняется.

Dim n As Integer
n = 100
Do
n = n - 1
Debug.Print n
Loop Until n < 11

---E---


End
End Function
End If
End Property
End Select
End Sub
End Type
End With

Заканчивает процедуру или блок.

End - немедленно завершает выполнение программы. Закрывает все открытые файлы и очищает все переменные.
End Function - необходим для завершения функции.
End If - необходим для завершение проверки условия оператором If.
End Property - необходим для завершения процедур Property Let, Property Get или Property Set.
End Select - необходим для завершения оператора Select Case.
End Sub - необходим для завершения процедур.
End Type - необходим для завершения опеределения пользовательского типа
(оператор Type)
End With - необходим для завершения оператора With.

Sub Form_Load
Dim Password, Pword
PassWord = "Swordfish"
Pword = InputBox("Type in your password")
If Pword <> PassWord Then
MsgBox "Sorry, incorrect password"
End
End If
End Sub

[Public | Private] Enum name
membername [= constantexpression]
membername [= constantexpression]
. . .
End Enum

Объявляет перечисляемый тип.

Public Enum InterfaceColors
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodgerBlue = &HFF901E&
icDeepSkyBlue = &HFFBF00&
icSpringGreen = &H7FFF00&
icForestGreen = &H228B22&
icGoldenrod = &H20A5DA&
icFirebrick = &H2222B2&
End Enum

Erase arraylist - сбрасывает все значения массива фикс. размера и освобождает неиспользуемую память динамического массива.

Dim a(5) As Integer
Dim Dyn()
a(2) = 4
ReDim Dyn(10) ' Резирвируем память для 11-ти элементов
Erase a ' Сбрасываем все значения массива a
Erase Dyn ' Освобождаем память
Form1.Caption = a(2) ' Выведет 0
Form1.Caption = Dyn(2) ' Выдаст ошибку Subscript Out Of Range.

Error errornumber - Симулирует наступление ошибки под номером errornumber. Полное описание всех кодов ошибок вы найдёте здесь. или здесь

On Error Resume Next ' Устанавливаем обработку ошибки
Error 11 ' Симулируем ошибку "Деление на ноль".

[Public] Event procedurename [(arglist)] - Используется для объявления события в компоненте или модуле класса.

Public Event UpdateTime(ByVal dblJump As Double)

Exit...

С помощью операторов Exit... можно осуществить досрочный выход из циклов, функций, свойств и процедур вне зависимости от значения, которое имеет в данный момент условие выхода.

Exit Do
Exit For
Exit Function
Exit Property
Exit Sub

Dim n As Integer
n = 10
Do While n > 1
n = n - 1
Debug.Print n
If n = 5 Then Exit Do ' Если счётчик = 5, то выходим из цикла
Loop

Sub ExitStatementDemo()
Dim I, MyNum
Do ' Бесконечный цикл
For I = 1 To 1000 ' Повторяем 1000 раз
MyNum = Int(Rnd * 1000) ' Генерируем случайное число
Select Case MyNum ' Проверяем сгенерированное значение
Case 7: Exit For ' Если 7, выходим из For...Next.
Case 29: Exit Do ' Если 29, выходим из Do...Loop.
Case 54: Exit Sub ' Если 54, выходим из процедуры.
End Select
Next I
Loop
End Sub


Источник: http://vb.hut.ru
Категория: Операторы | Добавил: adelay (26.04.2013) | Автор: Funbit
Просмотров: 1416 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
ADelay © 2024
Конструктор сайтов - uCoz