Операторы VB (S)
Описание операторов, встроенных в Visual Basic 5, начинающихся
с буквы S
Список операторов, описанных в этом разделе:
---S---
SavePicture picture, stringexpression - сохраняет
изображение, находящееся в данный момент в свойствах Picture или Image
объекта X в файл.
Пример:
'
Поместите на форму PictureBox и загрузите туда любую картинку
Private
Sub
Form_Click()
AutoRedraw = True '
Включаем перерисовку окна
Picture1.AutoRedraw = True
Form1.ScaleMode = vbPixels ' Ставим вид масштаба
в пиксели
Picture1.ScaleMode = vbPixels
Form1.PaintPicture Picture1, 0, 0, 100, 100, 0, 0, 100, 100, vbSrcCopy
Form1.Refresh
MsgBox "Нажмите OK для сохранения"
SavePicture Image, "C:\TEST.BMP" ' Сохраняем
картинку
End Sub
SaveSetting appname, section, key, setting -
Записывает настройку в реестр. Напомню, что функция DeleteSetting удаляет
настройку, а функция GetSetting загружает. Я почему-то не нашёл в документации
путь, куда сохраняются настройки. Пришлось определять самому. Оказалось,
что настройки записываются по адресу:
HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings
В этом ключе создаётся ещё один ключ с названием appname.
Пример:
'
Сохраняем положение левой координаты формы в реестр
SaveSetting "MyApp", "Startup", "Left",
Form1.Left
Seek [#]filenumber, position - Устанавливает
позицию для чтения/записи в файле, открытым оператором Open.
Пример:
Type
Record ' Определённый пользователем тип
ID As Integer
Name As String * 20
End Type
'
Для файлов, открытых для произвольного доступа,
' Seek устанавливает следующую запись
Dim
MyRecord As Record, MaxSize, RecordNumber
' Объявляем переменные
' Открываем файл для произвольного доступа
Open "TESTFILE" For
Random As #1 Len = Len(MyRecord)
MaxSize = LOF(1) \ Len(MyRecord) ' Получаем количество
записей в файле
' Цикл читает записи с конца до начала
For RecordNumber = MaxSize To
1 Step - 1
Seek #1, RecordNumber '
Устанавливаем позицию записи
Get #1, , MyRecord '
Читаем запись
Next RecordNumber
Close #1 ' Закрываем
файл
'
Для файлов, окрытых не для произвольного доступа,
' Seek устанавливает позицию с точностью до байта.
Dim
MaxSize, NextChar, MyChar
Open "TESTFILE" For
Input As #1 ' Открываем файл
MaxSize = LOF(1) ' Получаем размер файла в байтах
' Цикл читает по букве с конца файла до начала
For NextChar = MaxSize To
1 Step -1
Seek #1, NextChar '
Устанавливаем позицию
MyChar = Input(1, #1) ' Читаем символ
Next NextChar
Close #1 ' Закрываем
файл
Select Case - см. сюда.
SendKeys string[, wait] - посылает одно или
более нажатий на клавишу в активное окно. Всё происходит точно так же,
как будто всё было введено с клавиатуры.
Пример:
Dim
ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) '
Запускаем калькулятор
AppActivate ReturnValue ' Активизируем калькулятор
For I = 1 To
100 ' Циклимся 100 раз
SendKeys I & "{+}", True ' Посылаем
нажатие на клавишу в калькулятор
Next I ' Добавляем
к значению в калькуляторе переменную I
SendKeys "=", True '
Нажимаем на знак равенства
SendKeys "%{F4}", True '
Посылаем Alt+F4 для закрытия калькулятора
Set objectvar = {[New] objectexpression | Nothing}
- присваивает переменной ссылку на объект.
Пример:
Dim
YourObject, MyObject, MyStr
Set MyObject = YourObject '
Присваиваем ссылку
' MyObject иYourObject ссылаются на один и тот
же объект
YourObject.Text = "Hello World" ' Инициализируем
свойство
MyStr = MyObject.Text ' Возвратит "Hello
World".
'
Удаляем ссылку на объект
Set MyObject = Nothing
' Освобождаем объект
SetAttr pathname, attributes - устанавливает
атрибуты файла pathname.
Пример:
SetAttr
"TESTFILE", vbHidden
' Теперь файл скрытый
SetAttr "TESTFILE", vbHidden + vbReadOnly
' Теперь он и скрытый и только для чтения
Static varname[([subscripts])] [As [New] type]
[, varname[([subscripts])] [As [New] type]]...
Объявляет переменную. Переменные Static объявляются внутри процедур
и функций и вне их недоступны, но в отличие от обычных локальных переменных
они не инициализируются при входе в процедуру или функцию, где они объявлены.
Пример:
'
Определение функции
Function KeepTotal(Number)
' Только переменная Accumulate сохраняет своё
значение между вызовами
Static Accumulate
Accumulate = Accumulate + Number
KeepTotal = Accumulate
End Function
'
Определение статической функции
Static Function MyFunction(Arg1, Arg2,
Arg3)
' Все локальные переменные сохраняют свои значения
между вызовами
Accumulate = Arg1 + Arg2 + Arg3
Half = Accumulate / 2
MyFunction = Half
End Function
Stop - С помощью этого оператора можно поставить
брикпоинт в программе. Если же программу скомпилировать с этим оператором
и запустить, то при наступлении это оператора программа выдаст ошибку.
В отличие от оператора End, оператор Stop не закрывает открытые файлы
и не очищает переменные.
Пример:
Dim
I
For I = 1 To
10 ' Запускаем цикл
Debug.Print
I ' Печатаем I в Debug
Stop ' Останавливаемся
на каждой итерации
Next I
[Private | Public | Friend] [Static] Sub name
[(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
Этот оператор объявляет процедуру с именем name и параметрами arglist.
Пример:
'
Объявляем процедуру
' Процедура имеет 2 аргумента
Sub SubComputeArea(Length, TheWidth)
Dim Area As Double
' Объявляем локальную переменную
If Length = 0 Or
TheWidth = 0 Then
' Если любой аргумент равен нулю
Exit Sub ' Сразу
выходим из процедуры
End If
Area = Length * TheWidth ' Вычисляем площадь прямоугольника
Debug.Print
Area ' Печатаем её в окно Debug
End Sub
Хороший считыватель pr eh03! Смотрите здесь! Спешите! |