Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на BASIC / Visual Basic / Visual Basic 6.0 / БВГ / БурковВГ_Материалы_Расширений_электронных_лекций / БурковВГ_Лекция_Типы данных, константы и переменные и функции в VB6.doc
Скачиваний:
80
Добавлен:
02.05.2014
Размер:
217.09 Кб
Скачать

Некоторые константы аргумента Кнопки

Наименование константы

Значение

Описание

VbOKOnly

0

Отображается только кнопка ОК

VbOKCancel

1

Отображаются кнопки ОК, Отмена (Cancel)

VbAbortRetryIgnore

2

Отображаются кнопки Стоп (Abort), Повтор (Retry), Пропустить (Ignore)

VbYesNoCancel

3

Отображаются кнопки Да (Yes), Нет (No), Отмена (Can­cel)

VbYesNo

4

Отображаются кнопки Да (Yes), Нет (No)

vbRetryCancel

5

Отображаются кнопки Повтор (Retry), Отмена (Cancel)

VbCritical

16

Отображает значок критического состояния

VbQuestion

32

Отображает значок вопроса с предупреждением

VbExclamation

48

Отображает значок предупреждающего сообщения

vbInformation

64

Отображает значок информационного сообщения

Заголовок –необязательный аргумент; строковое выражение, отображаемое в заголовке окна, если он опущен, в заголовке используется имя проекта.

Файл_помощи, Помощь – необязательные аргументы, используются в паре для под­ключения файла помощи, если используется кнопка Справка.

Пример использования функции MsgBox

Private Sub Command1_Click()

a = MsgBox("Вы уже посмотрели, как работает программа?" & _

Chr(13) & Chr(10) & "Завершить работу сейчас?", _

vbYesNo + vbQuestion, _

"Демонстрация в MsgBox многстрочного сообщения")

If a = vbYes Then Unload Me 'выгрузить форму

End Sub

Процедуры и функции в проекте VB

Sub-процедуры

Процедуры – это последовательность объявлений и инструкций, объединенных в структуру с заголовком вида:

Sub Имя_процедуры ([Аргументы])

[Объявления типов]

….

[Операторы процедуры]

….

End Sub

которую можно вызывать из других мест программы на Visual Basic.

Переменные, объявленные внутри процедуры, называются локальными, они дос­тупны только в этой процедуре. Если они объявлены оператором Dim, то они существуют пока выполняется процедура, после чего память освобождается. Есть возможность сохра­нять значение локальной переменной до следующего вызова процедуры. Для этого ее нужно объявить как статическую, с ключевым словом Static. В этом случае переменная недоступна в других процедурах, но ее значения сохраняются от вызова к вызову проце­дуры. Глобальные переменные (объявленные со словом Public), доступны всему прило­жению.

Событийные процедуры

Обработчики событий в Visual Basic реализуются как процедуры. Такие процедуры в VB всегда привязаны как к совершаемому событию, так и к объекту, над которым это событие совершается. Имя событийной процедуры, которое в этом случае формирует VB, склады­вается из имени объекта и названия события связанных символом подчерка. Фактически весь программный код VB-проекта состоит из некоторого набора процедур-событий, процедур и функций. Например, процедура обработки события щелчка кнопкой Com­mandl имеет форму

Private Sub Commandl_Click()

{Тело процедуры}

end Sub

Событийные процедуры вызываются работающим приложением при появлении соответ­ствующего события в системе. Если необходимое событие не произойдет, событийная процедура, связанная с этим событием не выполнится ни разу.

Аргументы

Процедуры могут использовать аргументы, список которых (при необходимости с указа­нием типа) размещают в скобках после имени процедуры. В событийных процедурах на­бор аргументов зависит от события и не может быть изменен разработчиком.

В общих процедурах количество и порядок используемых аргументов определяется раз­работчиком.

Способ передачи аргументов

В VB аргументы могут передаваться двумя способами: либо по ссылке ( ByRef ), либо по значению ( ByVal ).

Если аргумент передается как ссылка, то вызванная процедура получает физический адрес памяти передаваемой переменной. И в этом случае можно изменять значение этого аргу­мента, так как вызываемая и вызывающая процедуры обращаются к одной и той же об­ласти памяти и значение переменной для них идентично. По умолчанию аргументы пере­даются как ссылка, поэтом ключевое слово можно опустить ByRef.

При передаче аргументов по значению вызванная процедура получает копию зна­чения этого аргумента, и изменить его не может. Ключевое слово ByVal должно указы­ваться обязательно.

Можно создавать общие для формы или проекта в целом процедуры, не связанные с объектами на форме, если в вашем приложении есть часто повторяющаяся последова­тельность кодов Это существенно сократит время набора программного кода и упростит алгоритм. Для создания общей процедуры необходимо в модуле кода или секции (Gen­eral/Declaration) кода формы ввести Sub, затем задать имя и нажать клавишу Enter. В полученной конструкции набрать свой код тела процедуры.

Sub имя()

[Тело процедуры]

End Sub

Такие процедуры называют еще пользовательскими или главными процедурами.

Вызов процедур

В создаваемых процедурах могут использоваться и аргументы. Они просто поме­щаются в скобках в заголовке процедуры с указанием, при необходимости, типа данных. Аргументы могут быть как формальными (используемыми в теле процедуры), так факти­ческими (передаваемыми в процедуру при ее вызове).

Для вызова общей процедуры, необходимо воспользоваться оператором

Call Имя_процедуры

или просто записав ее имя, перечислив ее фактические параметры через запятую без ско­бок.

Примеры.

1) Вычислить сумму где f={5;-3;1;2}.

Сначала в разделе General создается процедура вычисления произведения любого коли­чества любых сомножителей из элементов массива.

Sub proizv(k,z,p)

Dim i as integer

p=1

For i=1 to k

p=p*z(i)

Next

End sub

Здесь жирным выделены ключевые слова VB, k- количество сомножителей, z- имя мас­сива, элементы которого перемножаются, p – параметр, в котором будет храниться зна­чение вычисленного произведения.

Затем в событийной процедуре Command1_Click, создают программный код, в котором используют созданную процедуру.

Private Sub Command1_click()

Dim F(4), F1(4), S,p,p1 as Single

Dim i as Integer

For i=1 to 4

F(i)=val(inputbox(“Введите f”))

F1(i)=sin(f(i))

Next

Proizv 4,f,p1

Proizv 3,f1,p2

S=p1+p2

Print “Сумма произведений равна”; s

End sub

Здесь после ввода в память массивов f и f1 дважды вызывается процедура Proizv. При этом в первом обращении к ней, в нее передаются фактические значения для входных формальных параметров k и z, соответственно равных 4 и f, а результат сохраняется как значение выходного формального параметра p1. Во второй раз – значения параметров k и z, соответственно равны 3 и f1, а результат сохраняется как значение переменной p2.