Използване на модули и процедури
Стандартния
модул
е отделен контейнер в дадена програма, който съдържа глобални или
публични променливи и процедури Function и Sub.
Локални променливи
за процедурата означава, че могат да бъдат четени или променяни само в
процедурата, в която са били създадени.
Процедурите за събития са локални за формата
, в която са били създадени (не може да
осъществите достъп до процедура за събитие
cmdQuit_Click
от Form2, ако тя е асоциирана с Form1.
За да поделите променливите и процедурите между всички форми и процедури за събития в
проекта, е необходимо да ги декларирате в един или повече стандартни модули за този проект.
Стандартния или кодов модул
е специален
файл с разширение *. bas,
съдужащ променливи и
процедури, които могат да бъдат използвани навсякъде в програмата.
Точно както и формите стандартните модули, са в отделен списък в прозореца Project и могат да
бъдат записвани на HDD чрез командата Save Module1 As от менюто File. За разлика от формите обаче,
стандарните модули не съдържат обекти или настройки на свойствата, а само код, който може да бъде
визуализиран и редактиран в прозореца за кода.
!!! За разлика от стандартните модули, обектите и процедурите за събития, асоциирани с дадена
форма се съхраняват в модула на формата, а нов обект се създава в модул на клас.
За да създадете нов стандартен модул в програмата, в лентата с инструменти натиснете стрелката
надолу на бутона
Add Form
и щракнете върху
Module
или от менюто
Project Add
изберете командата
Module.
Когато създадете нов стандартен модул, той веднага се появява в прозореца за кода. Първия
стандартен модул в една програма по подразбиране се нарича MODULE 1, но вие можете да промените
това име, като го записвате на диска.
В прозореца Project името Module1 e в скоби, за да покаже подразбиращото се файлово име на модула, а
името на модула се появява в ляво от скобите.Можете да заредите този файл (
*.bas
) и в друг проект, като
използвате командата
Add File
от менюто
Project.
Според конвенцията, на имената на модули се дава
префикс
mod.
За да премахнете стандартен модул от проекта, в прозореца
Project
щракнете върху модула,
след което от менюто
Project
изберете командата
Remove.
По този начин не се изтрива модула от твърдия
ви диска, но премахвате връзката между него и текущия проект.
Декларирането на глобална, или публична, променлива в един стандартен модул е просто- пишете
ключовата дума
Public,
следвана от името на променливата. След като декларирате променливата, можете
да я четете, променяте или визуализирате в която и да е процедура в програмата си. По подразбиране
публичните променливи се декларират в модулите като променливи от вариантен тип, но вие можете да
зададете конкретно име на тип, като използвате ключовата дума
As
и укажете типа.
Обект
Свойство
Насройка
Label5
Font
Arial, Bold Italic, 12-point
ForeColor
Green (on Custom tab)
Name
lblWins
Text
“Wins: 0”
TextAlign
MiddleCenter
Form1
Caption
Lucky Seven
В прозореца на кода за процедурата за събитие Command1_Click за бутона Spin под конструкцията Beep
напишете следната програмна конструкция:
Wins = Wins + 1
lblWins.Caption = "Wins: " & Wins
този код увеличава публичната променлив Wins, ако при завъртането се появи седмица.Втората
конструкция използва оператора за конкатенция (&), за да присвои низ на обекта lblWins във формата
Wins: Х, където Х е броят на печалбите.
След като стартирате приграмата етикета Wins седи печалбите ви.
Публичната променлива
Wins
беше полезна тук, защото си запази стойността по време на многократните
(десетте) извиквания на процедурта за събитие Command1_Click. Ако бяхте я декларирали като локална
промрнлива в процедурата за събитие Command1_Click, тя щеше да се нулира всеки път. Използване на
публична променлива в стандартен модул ви позволява да избегнете нулиране.
1
Създаване на процедури с общо предназначение
Освен глобални променливи, стандартните модули могат да съдържат
процедури с общо
предназначение
, които могат да бъдат извиквани от произволно място в програмата. Процедурата с общо
предназначение не е като процедурата за събитие, защото не е асоциирана със събитие или обект, които сте
създали посредством някой контрол от кутията с инструменти.Процедурите с общо предназначение са
подобни на вградените конструкции и функции на VB – извикват се по име, могат да получават аргументи
и всяка изпълнява конкретна задача.
В стандартен модул можете да съдавате три типа процедури с общо предназначение:
•
Function процедури –
се извикват по име от процедури за събитие или от други процедури. Те
могат да получават аргументи и винаги връщат стойност. Обикновено се използват за изчисления.
•
Sub процедури -
извикват се по име от процедури за събитие или от други процедури. Те могат да
получават аргументи и могат да бъдат използвани и за изпълнение на задачи и могат да връщат
стойности. За разлика от функциите обаче
Sub процедурите
не връщат стойности, асоциирани с
техните имена(въпреки че могат да връщат стойности чрез променливи).
Sub процедурите
обикновено се използват, за получаване или обработване на входни и изходни данни или за
насройка на свойства.
•
Property процедури
- се използват, за да създават и манипулират дефинирани от потребителя
свойства в програмата. Това е полезна, допълнителна възможност, която ви позволява да правите
потребителски настройки на съществуващи контроли на VB и да разширявате езика му, като
създавате нови обекти, свойства и методи.
Предимства на процедури с общо предназначение
Процедурите с общо предназначение ви позволяват да асоциирате често използван програмен код с
познато име в стандартен модул. Процедурите с общо предназначение предоставят следните
предимства:
•
Отстраняват повтарящи се редове.Можете да дефинирате дадена процедура веднъж и да я
изпълнявате в програмата си произволен брой пъти.
•
Правят програмите по-лесни за четене. Програма, разделена на колекция от малки части, е по-лесна
за разделяне и разбиране, отколкото такава, състояща се от една голяма част.
•
Опростяват разработването на програма.Програми, разделени на логически единици, са по-лесни за
рзработване, писане и дебъгване. Освен това, ако пишете програма в екип, можете да обеняте
процедури и модули, вместо цели програми.
•
Могат да бъдат използвани отново в други програми.Лесно можете да съедините процедурите от
някой стандартен модул в други програми проекти.
•
Разширяват езика VB. Процедурите често изпълняват задачи, които не могат да бъдат изпълнени от
отделни ключови думи на VB.
Писане на Function процедури
Една
Function процедура
е група конструкции, разположени между конструкциите
Function
и
End Function
в стандартен модул. Конструкциите във функцията извършват основната работа-
обикновено обработват текст, управляват въвеждане или изчисляват стойност. Вие изпълнявате, или
извиквате, такава функция във вашата програма, като поставяте името и в програмна консрукция заедно
с необходимите и аргументи(Аргументите са данните, използвани за работа на функциите).С други
думи, използването на
Function
процедура е точно като използването на вградена функция, като Time,
Int или Str.
Синтаксис на Function
Function FunctionName([arguments]) [As Type]
function statements
End Function
•
FunctionName
е името на функцията, която създавате в стандартния модул.
•
Arguments
е списък от опционални аргументи(отделени със запетаи), които ще бъдат използвани
във функцията.
•
As Type
е опция, която определя типа на връщаната от функцията стойност (по подразбиране е
Variant).
•
function statements
е блок от конструкции, който извършват работата във функцията.
2
Функциите винаги връщат за извикващата процедура стойност за името на
функцията(
FunctionName).
Последната конструкция във функцията често е израз за присвояване,
който присвоява последното изчисление на функцията на
FunctionName.
Пример:
Funktion TotalTax(Cost) As Single
StateTax=Cost*0.05 ‘щатския данък е 5%
CityTax=Cost*0.015’градския данък в 1,5%
TotalTax=StateTax+CityTax
End Function
Извикване на Function процедура
За да извикате функцията
TotalTax
в някоя процедура за събитие, трябва да използвате конструкция
подобна на следната:
lblTaxes.Caption=TotalTax(500)
Тази конструкция изчислява всички дължими данъци за доходи от 500$ и след това присвоява
резултата на свойството
Caption
на обекта
lblTaxes.
Функцията
TotalTaxes
може да приеме като
аргумент и променлива:
TotalCost=SalesPrice+TotalTax(SalesPrice)
Този ред използва функцията
TotalTax
, за да определи данъците за числото в променливата
SalesPrice
и след това да ги прибави към
SalesPrice
, за да се получи цялата стойност на артикула.
Виждате колко е по-лесен кодът, когато се използва функция.
Използване на функция за извършване на изчисление
За да изчислим съотношението на печалбите в играта Lucky Seven – процента на завъртанията на
числата, при които се появяват една или повече седмици ще добавим фукцията
Rate
и публичната
променлива
Spin
към стандартния модул.След което ще извикваме фукцията
Rate
всеки път, когато бъде
натисна бутона
Spin.
Ще визуализираме резултататие в нов етикет, който ще създадем във формата.
Създайте функция за съотношението на печалбите
1.
Отворете формата на програмата
Track Wins
, която ще модифицираме.
2.
Изпозвайте
Label
контрола, за да създадете нов етикет под
Wins
етикета. Направете
следните настройки:
Обект
Свойство
Насройка
Label5
Font
Arial, Bold Italic, 12-point
ForeColor
Red (on Custom tab)
Name
lblRate
Text
“0.0%”
TextAlign
MiddleCenter
Form1
Caption
Lucky Seven
Вашата форма би трябвало да изглежда така:
3.
В
Solution Explorer
, кликнете върху
Module1.vb
модула(ако не се вижда, а е създаден от
меню ProjectAdd Existing Itemsизбирате върху
Module1.vbOK
) , и тогава кликвате върху бутона
View Code
.
3
Предмет: | Програмиране, Информатика, ИТ |
Тип: | Лекции |
Брой страници: | 11 |
Брой думи: | 3516 |
Брой символи: | 21124 |