Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Знакомство c Visual Basic.pdf
Скачиваний:
30
Добавлен:
02.06.2015
Размер:
4.34 Mб
Скачать

17.17S

17.17.1SavePicture

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

17.17.2SaveSetting

SaveSetting appname, section, key, setting - ЖЯозръбЯдс мЯрспнийт б пддрсп.

МЯонлмэ, цсн утмйхзю DeleteSetting тгЯкюдс мЯрспнийт, Я утмйхзю GetSetting

жЯвптеЯдс. МЯрспнийз жЯозръбЯэсрю он Ягпдрт:

HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings

Б ьснл йкэцд рнжгЯясрю дшя нгзм йкэц р мЯжбЯмздл appname.

Опзлдп:

' Сохраняем положение левой координаты формы в реестр

SaveSetting "MyApp", "Startup", "Left", Form1.Left

17.17.3Seek

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 ' Закрываем файл

17.17.4Select Case

Select Case – йнмрсптйхзю рктезс гкю пдЯкзжЯхзз рсптйстпъ бъанп

17.17.5SendKeys

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 для закрытия калькулятора

17.17.6Set

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 ' Освобождаем объект

17.17.7SetAttr

SetAttr pathname, attributes - трсЯмЯбкзбЯдс Яспзатсъ уЯикЯ pathname.

Опзлдп:

SetAttr "TESTFILE", vbHidden

' Теперь файл скрытый

SetAttr "TESTFILE", vbHidden + vbReadOnly

' Теперь он и скрытый и только для чтения

17.17.8Static

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

17.17.9Stop

Stop - Р онлншыэ ьснвн нодпЯснпЯ лнемн онрсЯбзсы апзйонзмс б опнвпЯллд.

Дркз ед опнвпЯллт рйнлозкзпнбЯсы р ьсзл нодпЯснпнл з жЯотрсзсы, сн опз бъонкмдмзз ьснвн нодпЯснпЯ опнвпЯллЯ бъгЯрс нчзайт. Б нскзцзд нс нодпЯснпЯ End, нодпЯснп Stop мд жЯйпъбЯдс нсйпъсъд уЯикъ з мд нцзшЯдс одпдлдммъд.

Опзлдп:

Dim I

For I = 1 To 10 ' Запускаем цикл

Debug.Print I ' Печатаем I в Debug

Stop ' Останавливаемся на каждой итерации

Next I

17.17.10Sub

[Private | Public | Friend] [Static] Sub name [(arglist)]