Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Приложение Visual Basic (проект) – это совокупность экранных форм и программных кодов, с помощью которых решается некоторая задача. Если проект не слишком простой, то программный код для него удобно составлять не одним большим куском, а частями, порциями. Эти части называются модулями. Модуль – это часть программного кода, которая хранится в отдельном файле. В частности, в отдельном файле хранится информация об одной экранной форме. Такой файл называется модулем формы. Файл модуля формы имеет расширение frm. Он содержит сведения о самой форме, описания объектов на форме и значения свойств этих объектов. Кроме того, модуль формы содержит программный код, который относится к форме и объектам на ней.
Существуют и другие виды модулей, например, Active DLL (dinamic link library – динамически связывающая библиотека, содержащая новый класс объекта) и исходные модули. Файл исходного модуля имеет расширение. bas. Он добавляется в проект командой Project\Add Module. В нем содержится программный код, который может использоваться не в одной, а в нескольких формах или даже в нескольких проектах. Представление программного кода приложения в виде отдельных компактных модулей это одно из проявлений модульного принципа программирования. Другим проявлением модульного принципа программирования является разбиение программного кода уже внутри модуля на отдельные части – подпрограммы (процедуры и функции).
Один модуль экранной формы может состоять из нескольких процедур-событий. Общие процедуры и функции могут размещаться в любых модулях, в том числе в модуле формы и в исходном модуле.
Можно провести некоторую материальную аналогию. Проект представляет собой молекулу вещества, а модули – атомы, из которых состоит молекула. Процедуры и функции – частицы, составляющие атом (электроны, протоны, нейроны).
Общая структура программного кода формы VB следующая.
<Раздел глобальных описаний>
<Начало n-й процедуры обработки>
<Раздел локальных описаний>
<Раздел операторов>
<Конец n-й процедуры обработки>
[ <Начало k-й общей процедуры или m-й функции>
<Раздел локальных описаний>
<Раздел операторов>
<Конец k-й общей процедуры или m-й функции > ],
где n=1..N. k=1..K, m=1..M,
N,K,M – число процедур обработки событий и общих процедур и функций. Необязательные элементы программ указаны в квадратных скобках
Как вы уже знаете, такая структура не является строго обязательной для использования. Так раздел описаний может вообще отсутствовать, а локальные описания может размещаться внутри блоков операторов.
Процедура обработки событий вызывается в ответ на какое-то событие (щелчок мыши по кнопке или полю, перемещение мыши, нажатие символа на клавиатуре). Они после вызова постоянно находятся в состоянии ожидания событий.
Кроме процедур обработки событий, в программу можно включать процедуры и функции не связанные с событиями. Они выполняют самостоятельные действия и могут быть использованы многократно. Будем называть их общими.
Общие процедуры и функции (подпрограммы) начинают работать только после явного их вызова из какого-нибудь места программы. После выполнения такой подпрограммы происходит автоматический возврат в то место программы, откуда подпрограммы была вызвана.
Процедура и функция имеет имя и возможный список формальных параметров.
[Private|Public][Static] Sub<имя_общей_процедуры>[(<список_формальных_параметров>)]
<Раздел локальных описаний>
<Раздел операторов>
End Sub
[Private|Public][Static]
Function<имя_функции>[(<список_формальных_параметров>)] [As <Тип>]
<Раздел локальных описаний>
<Раздел операторов>
End Function
[Private|Public] – область видимости. Если область явно не указана, то по умолчанию подпрограмма будет отнесена к классу Public.(Private – локальная подпрограмма будет видна только внутри данного модуля, Public - глобальная подпрограмма будет видна из других модулей).
Наличие в заголовке описания подпрограммы слова [Static] позволит сохранить значения всех локальных переменных между последовательными вызовами этой подпрограммы. При отсутствии этого слова все значения локальных переменных обнуляются перед обращением к подпрограмме.
Процедуры и функции могут иметь формальные параметры, которые могут быть входными и выходными.
Входной параметр – это переменная, значение которой должно быть установлено до начала работы подпрограммы и которая участвует в работе подпрограммы.
Выходной параметр – это переменная, которая получает свое значение в результате работы подпрограммы.
Входные и выходные параметры в списке формальных параметров записываются через запятую с обязательным указанием типа параметра.
По умолчанию формальные параметры в подпрограммы являются одновременно входными и выходными, при этом процесс передачи фактических параметров вместо формальных параметров при вызове подпрограммы выполняется по ссылке (т.е. передается адрес фактической переменной). Это значит, что подпрограмма получает доступ к области памяти, где хранится оригинальное значение переменной и может его изменить в подпрограмме. Такой формальный параметр называется параметром-переменной. Возможна передача фактических параметров по значению. В этом случае переменная копируется, и подпрограмма получает только копию от значения переменной, а не адрес. Размещение ключевого слова byVal перед формальными параметрами в заголовке подпрограммы укажет на передачу по значению и защитит переменную от изменения. Такой формальный параметр называется параметром - значение.
Таким образом, в формальных параметрах происходит разграничение их на входные и выходные параметры. Общие подпрограммы можно вызывать из любого места кода программы.
Общая процедура вызывается как отдельный оператор со списком фактических параметров, а функция может вызываться либо из выражения (при этом она возвращает результат работы в имени своем), либо как отдельный оператор, то есть как общая процедура и возвращает результат только через выходные параметры. Список фактических параметров – это входные параметры для подпрограммы, которые могут быть значениями переменных, константами или выражениями.
Синтаксис оператора вызова процедуры:
Call Имя_процедуры [(<список_фактических_параметров>)]
или бесскобочная форма записи оператора вызова:
Имя_процедуры [<список_фактических_параметров>]
Команда Add Procedure … меню Tools объявляет общую процедуру или функцию.
Дата публикования: 2014-12-28; Прочитано: 254 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!