Модульный принцип построения проекта и программного кода. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Модульный принцип построения проекта и программного кода.



 

В языке VISAUL BASIC создание Windows-приложения - это почти то же самое, что и создание проекта. Проект - это совокупность экранных форм и программных кодов, с помощью которых решается некоторая задача.

Windows-приложение - это исполняемый exe-файл.

При построении проекта в среде проектирования VISAUL BASIC используются методы модульного программирования:

1) Метод модульной организации.

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

В файле модуля формы ( frm) содержится программный код, относящий к форме и объектам этой формы.

В стандартном (универсальном) модуле ( bas ) содержатся программные коды, которые могут использоваться не в одной, а в нескольких формах (и даже в нескольких проектах).

VISAUL BASIC позволяет создавать новые объекты, разрабатывать для них свойства и методы и описывать их в модулях класса (cls).

2) Метод функциональной декомпозиции (метод).

Суть метода “top-down” – программный модуль логически разбивается на отдельные процедуры (функции). Процедура (функция) скрывает выполняемую последовательность действий и действует как единая абстрактная операция.

Принятая в VISAUL BASIC классификация процедур показана на рис.62.

 

Процедуры

 
 

 

 


Подпрограммы Функции

(SUB) (FUNCTION)

 

Процедуры Общие

обработки событий процедуры

(Event) (General)

 

Рис.62. Классификация процедур

 

Общие процедуры.

 

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

Общая процедура может входить в состав модуля экранной формы (в файл frm) или в состав стандартного модуля (в файл bas). Поэтому существуют две возможности размещения общей процедуры.

1) Размещение процедуры в файле экранной формы

Код процедуры может быть добавлен двумя способами.

Способ 1. Код процедуры может быть записан в окне программного кода для данной экранной формы.

 

 

Способ 2. Процедура может быть добавлена в модуль командой меню Tools - Add Procedure

 

 

2) Размещение процедуры в файле стандартного модуля.

Процедура должна определяться в окне программного кода для стандартного модуля. Если стандартного модуля в проекте нет, то его необходимо добавить (создать стандартный модуль) командой меню Project - Add Module.

Добавить общую процедуру в стандартном модуле можно указанными выше способами.

 

7.16. Область определения и время жизни переменных

 

В VISAUL BASIC есть три вида областей определения, характеризующих доступность переменной:

· локальная: переменная доступна только в текущей процедуре;

· контейнера: переменная доступна только в текущей форме, модуле или классе;

· глобальная: переменная доступна во всем проекте.

 

Локальные переменные

Локальными называются переменные, определяемые внутри процедуры или функции. Они доступны только внутри этой процедуры.

 

Так как локальная переменная A (см. рис. 65) объявляется оператором Dim в соответствующей процедуре, она доступна внутри только этой процедуры. Поэтому не возникает конфликтов при использовании разными процедурами переменных с одним и тем же именем.

При выходе из процедуры все ее локальные переменные сразу же удаляются из памяти, а при новом вызове этой процедуры переменные создаются вновь.

 

Переменные контейнера

Переменные контейнера определяются в секции
(General) (Declarations) с помощью оператора Dim и доступны только внутри соответствующего контейнера, т.е. формы, модуля или класса (см. рис. 66).

 

Form Module

 
 

Рис. 65. Область определения локальных переменных

 
 

Form Module

 
 

 
 

Рис. 66. Область определения переменных контейнера

Глобальные переменные

Глобальные переменные определяются в секции
(General) (Declarations) модуля. При этом вместо оператора Dim используется Public. Глобальные переменные доступны во всех модулях и процедурах проекта (см. рис.67).

 

 
 

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

Form Module

Рис. 67. Область определения глобальных переменных

 

VISAUL BASIC дает возможность объявлять переменные как статические. При выходе из процедуры содержимое статической переменной сохраняется. При новом вызове этой процедуры переменной присваивается значение, которое она имела при последнем выходе из этой процедуры. Содержимое переменной сохраняется в течение всего времени, пока существует в памяти форма или модуль.

 

 

Объявление переменной как статической:

Static Имя_переменной [ As Тип_переменной]

Пример:

Private Sub Command1_Click()

Static a As Integer

Dim b As Integer

a=a+1

b=b+1

Print a

Print b

End Sub

Статическая переменная a при каждом щелчке на кнопке Command1 увеличивается на 1. Нестатическая переменная b при каждом щелчке инициализируется заново, поэтому ее значение при выходе всегда равно 1.

Чтобы объявить статическими все локальные переменные процедуры, следует записать ключевое слово Static в заголовке процедуры.

Полное описание общей процедуры:

[ОбластьВидимости] [ Static ] Sub имяПроцедуры (СписокПараметров)

Операторы

End Sub

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

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

Примечание: Чтобы объявить статическими только некоторые переменные, достаточно при описании переменных вместо ключевого слова Dim использовать Static.

 

 



Поделиться:


Последнее изменение этой страницы: 2017-02-08; просмотров: 399; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.86.155 (0.009 с.)