Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Константы параметров для значков диалогового окна сообщения






Значок Константа Значение Тип сообщения
vbExclamation   Предупреждение
vbQuestion   Запрос
vbInformation   Информация
vbCritical   Ошибка

Этапы разработки приложения.

В Visual Basic, как и во многих других языках, предназначенных для написания приложений под Windows, используется событийно-управляемая модель программирования. В " старых" версиях бейсика, таких как QBasic, использовалась плоская структура написания программы. Каждая программа начиналась и заканчивалась в определённых местах. Вся программа выполнялась последовательно, и иногда, возможно, вызывались пользовательские процедуры и функции. Т.е. если программу " запускали", то она сразу начинала выполняться, и, дойдя до конца, завершалась. В Visual Basic это происходит совсем иначе. Дело в том, что ОС Windows имеет GUI (Graphical User Interface), т.е. графический интерфейс пользователя, в котором используются стандартные элементы управления, такие, как окна (они же формы), кнопки, списки, поля, для ввода текста и т.п. В любом языке высокого уровня программа строится на основе этих элементов. Разработка приложения на VB состоит из следующих этапов:

  1. Продумывания программы (подумать, что программа должна делать, решить перед собой задачи, реализовать их мысленно, продумать структуру данных, и т.д.).
  2. Проектирование интерфейса, т.е. помещение на форму нужных управляющих элементов, кнопок, списков и т.п. Этот этап называется составлением скелета программы.
  3. Написание программного кода, связывающего помещённые на форму управляющие элементы, т.е. " наращивание плоти на скелет".
  4. Отлаживание программы. Этот этап часто занимает больше времени, чем предыдущие.
  5. Окончательная компиляция и, если это необходимо, создание дистрибутива (т.е. установочного файла setup.exe).

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

  • Переменных
  • Выражений
  • Операторов
  • Управляющих структур
  • Функций
  • Классов и объектов

В Visual Basic переменые хранят информацию (значения). При их использовании Visual Basic резервирует область в памяти компьютера для хранения данной информации. Каждая переменная имеет своё имя. Оно может достигать 255 символов в длину, начинается всегда с буквы латинского алфавита, за которой могут следовать другие буквы, цифры и знак подчёркивания. Регистр символов значения не имеет. Приведём несколько примеров имён переменных:

numOfLetters - подходит
2Bottle - неверно, т.к. начинается не с буквы
ThisIsVeryLongName - подходит, длина 18 символов
sng.Cos - не подходит, т.к. используется точка

 

Рекомендуется придерживаться венгерского соглашения:

 

Тип Схема именования Пример
Константа Имя константы должно состоять только из заглавных букв. HWND_BROADCAST
Переменная Имя переменной должно начинаться с маленькой буквы, далее следующий слова с большой. numOfFonts
Функция Имя функции должно начинаться с заглавной буквы, далее следующие слова тоже с заглавной. SetForegroundWindow

 

Каждая переменная имеет определённый тип. Всего в VB 14 типов переменных. Кроме того, программист может определить и свой тип. Перечислим основные типы переменных VB:

Byte - предназначен для хранения целых чисел от 0 до 255. Если переменной такого типа присвоить значение, выходящее за эти пределы, то Visual Basic сгенерирует ошибку.

Integer - предназначен для хранения целых чисел в диапазоне -32768 до +32767, т.е. размер памяти, выделяемой под такую переменную составляет 2 байта. (256*256=65536). Символ для обозначения - " %".

Long - предназначен для хранения целых чисел в диапазоне -2147483648 до +2147483647, т.е. размер памяти, выделяемой под такую переменную составляет 4 байта. (65536*65536=4294967296). Символ для обозначения - " & ".

String - предназначен для хранения строковой (символьной) информации, т.е. попросту говоря - текста. Может хранить до 2 Гб. текста. Символ для обозначения - " $".

Single - предназначен для хранения дробных чисел, с точностью до 7 цифр. Диапазон отрицательных значений от -3.402823Е38 до -1.401298Е-45. Диапазон положительных значений от 1.401298Е-45 до 3.402823Е38. Длина числа может достигать 38 знаков. Занимает 4 байта памяти. Вычисления с данными переменными будут приблизительными и менее быстрыми, чем с переменными целого типа. Символ для обозначения - "! ".

Double - предназначен для хранения дробных чисел, с точностью до 16 цифр. Диапазон отрицательных значений от 1.79769313486232Е308 до -4.94065645841247Е-324.
Диапазон положительных значений от 4.94065645841247Е-324 до 1.79769313486232Е308.
Длина числа может достигать 300 знаков. Занимает 8 байта памяти. Вычисления с данными переменными будут приблизительными и менее быстрыми, чем с переменными целого типа. Используется для научных расчётов. Символ для обозначения - " #".

Currency - Данный тип создан для того, чтобы избежать ошибок при преобразовании чисел из десятичной формы в двоичную и наоборот (Невозможно представить 1/10 как сумму 1/2, 1/4 и т.д). Данный тип может иметь до 4 цифр после запятой, и до 14 перед ней. Внутри данного диапазона вычисления будут точными. Вычисления выполняются так же медленно, как и в случае переменных Single и Double. Данный тип очень подходит для финансовых расчётов. Символ для обозначения - " @".

Date - Этот тип данных позволяет хранить значения времени и даты в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999 года. Если переменной присваивается только значение даты, то время равняется 00: 00.

Boolean - очень важный и распространённый тип данных. Позволяет хранить так называемые булевы значения, т.е. только два значения - True и False. (По русски Правда и Ложь). Используется тогда, когда вам нужно хранить только значение Да или Нет.

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

В Visual Basic переменные объявляются с помощью оператора Dim, после которого следует As и Имя_Типа переменной. Например:

Dim a As Long
Dim b As Byte

Dim c As Long

Dim numOfLetters As Long
Dim myString As String
Dim isLoaded As Boolean

Если не указывать As Имя_Типа, то переменная будет объявлена как Variant.

После объявления переменной ей присваивается значение по умолчанию. Для строки это - " " (пустая строка). Для чисел - 0. Для Boolean - False. Переменная может быть использована сразу после объявления.

Переменные можно объявлять и в одной строчке, разделяя объявления запятыми:

Dim a As Long, Dim b As Integer

Здесь очень важно заметить следующую особенность. Логично было бы объявить 3 переменные типа Long следующим образом:

Dim a, b, c As Long

В результате такого объявления VB объявит 3 переменные, первая и вторая будут иметь тип Variant, и только третья - Long! А вообще, лучше объявлять каждую переменную в отдельной строчке. И, если необходимо, то логически отделить эти объявления можно просто вставив пустую строку между теми объявлениями, которые вы хотите отделить логически. Например, так:

Dim a As Long
Dim b As Long

Dim myString1 As String
Dim myString2 As String

Такие логические пробелы между строчками необходимы для избавления кода от его монотонности.

Присвоить значение переменной можно при помощи знака равно " =". Например:

a = 1234567
b = 234
c = 133
myString = " Visual Basic рулит"
isLoaded = True

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

a = b

' можно, т.к. переменная b " умещается" в тип Long (234< 4294967296)

a = b + c
' теперь в a хранится сумма b + c.
b = c
' тоже возможно (133 < 255)
b = a
' нельзя, т.к. переменная a не укладывается в диапазон [0-255]. Произойдёт ошибка.
myString = a

' Visual Basic сам преобразует число 1234567 в строку " 1234567", а потом присвоит это значение
' переменной myString. Также возможно обратное действие.
isLoaded = True
' всё ОК
myString = myString & " однозначно! "
' здесь происходит слияние двух строк, в результате чего переменная myString содержит строку:
' " Visual Basic рулит однозначно! ".

isLoaded = a
' возможно, т.к. Visual Basic сам преобразует тип Long в тип Boolean. isLoaded будет содержать True.
' Почему не False? Потому, что в VB False - это нуль, а любое, не нулевое значение - True

Выше, при описании типов переменных указывался символ для обозначения. Этот символ можно (а иногда и нужно) использовать для объявления переменной, но без использования зарезервированных слов As Тип. Т.е. к примеру:

Dim myLongParam&
Dim myString$

Здесь объявлены 2 переменные, первая имеет тип Long, вторая - String. Также можно употреблять эти спец. символы для явного указания типа константам

Выше отмечалось, что Visual Basic часто, незаметно для разработчика, занимается преобразованием типов переменных на лету. К примеру, мы рассматривали такой пример:

myString = a

Переменная a имеет тип Long, а myString - String. Visual Basic сам преобразует переменную a в тип String, а затем присвоит значение переменной MyString. Это необходимо знать. Также, Visual Basic предоставляет в ваше распоряжение несколько функций преобразования типов: CLng, CBool, CDate, CStr и т.д. Каждая функция преобразует выражение к соответствующему типу. Рассмотрим распространённую ошибку программиста на VB. Пусть у нас есть код типа:

Dim a As Byte
Dim b As Byte
Dim c As Long
a = 200
b = 200
c = a + b

Казалось бы, что если запустить такой код на выполнение, то в переменной c будет находиться значение 400 (200 + 200). Но не тут-то было: (. Visual Basic на строке c = a + b сгенерирует ошибку Overflow (Переполнение). Дело в том, что в выражении справа от знака равно складываются 2 переменные типа Byte, и Visual Basic решает, что после вычисления этого выражения, должен остаться тот же тип - Byte. Но если вспомнить то, что тип Byte может хранить значения в диапазоне 0-255, можно понять почему VB генерирует Overflow (Переполнение). 400 далеко выходит за диапазон Byte... Здесь может возникнуть вопрос: " А как же быть? Объявлять переменные a и b типом Long? ". Можно поступить и так. А можно воспользоваться функций преобразования типа CLng. Тогда работоспособный код будет выглядеть следующим образом:

Dim a As Byte
Dim b As Byte
Dim c As Long

a = 200
b = 200

c = CLng(a) + CLng(b) 'Всё в порядке, 400 - входит в тип Long

Немного о константах:

В Visual Basic можно объявлять не только переменные, но и константы. Константа как и переменная, тоже хранит некоторое значение, но в отличие от переменной хранимое значение не может изменяться. Чтобы объявить константу необходимо использовать зарезервированное слово Const, за которым следует имя и значение (и возможно тип) константы:

Const PI = 3.1415

Здесь объявлена константа c именем pi и значением 3.1415. После объявления она может быть использована по назначению.

Можно отметить следующую особенность VB: для констант с плавающей точкой тип по умолчанию - Double, для целых чисел - Integer. (Это легко можно проверить встроенной функций VB - VarType). Для того, чтобы явно задать тип константы, необходимо после имени задать тип, к примеру

Const PI As Long = 3 ' PI = 3, PI имеет тип Long

В Visual Basic существует очень много встроенных констант, которые с легкостью могут быть использованы в ваших программах. Например, константа vbNewLine - содержит 2 символа, с ASCII кодами 13 и 10, т.е. переход на новую строку. Список констант можно посмотреть в Object Browser'е. Для его вызова необходимо нажать F2, находясь в среде Visual Basic.

" Видимость" переменных:

Объявлять переменные можно в самых разных местах

  1. Внутри процедуры (или функции). В этом случае переменная будет " видна" только в коде этой процедуры (или функции). Если вы попытаетесь обратиться к такой переменной внутри кода другой процедуры, то Visual Basic сгенерирует ошибку.
  2. В самом верху кода формы, т.е. сразу после оператора Option Explicit. Это место называется разделом General Declarations (раздел Глобальных Объявлений). Такие переменные будет " видны" в любом месте кода формы. Т.е. в любой процедуре (или функции) формы. Переменные в данном месте могут быть объявлены с помощью зарезервированных слов Private и Public. Рассмотрим 3 определения:

    Dim myLocalVar1 As Byte
    Private myLocalVar2 As Integer
    Public myGlobalVar1 As Long

    Первые 2 определения абсолютно эквивалентны. Переменные объявленные таким образом будут видны в любом месте кода формы. Но только той формы, где они объявлены. В других формах обратиться к таким переменным будет нельзя.
  1. Третья переменная будет видна всему приложению в любом месте. Правда, чтобы добраться к такой переменной из кода другой формы, необходимо перед именем переменной указать ещё и имя формы, где эта переменная объявлена, например:

    Form1.myGlobalVar1 = 234
  2. В разделе General Declarations модуля. Здесь действуют те же правила, что и в разделе General Declarations формы. Private (или Dim) будут " видны" только в коде модуля. А Public - везде. Отличие наблюдается только в способе доступа к переменной. Здесь не обязательно указывать имя модуля перед такой переменной. Можно просто указать её имя и всё. Хотя я не рекомендую этого делать, т.к. теряется наглядность. И, к тому же, если у вас 2 модуля, в которых объявлены переменные с одинаковыми именами, то добраться к ним можно только указав имя соответствующего модуля перед именем переменной.

Период существования переменных:

Период существования переменной означает, как долго переменная является доступной.

Переменные, объявленные в процедуре (или функции) будут " живы" только пока выполняется эта процедура (или функция). При выходе из процедуры - переменная удаляется. При очередном вызове этой процедуры - переменная заново инициализируется. Кстати, к словам Private, Public и Dim, в процедурах и функциях можно использовать зарезервированное слово Static. Такая переменная при повторном вызове этой процедуры не будет заново инициализироваться. Она будет сохранять то значение, которое было в ней после предыдущего вызова. (такие переменные очень удобно использовать в обработке события Timer'а). Например:

Static myStat As String ' Private Static переменная

Переменные уровня формы будут " живы" только пока " жива" форма. Как только объектная переменная формы будет установлена в Nothing (или после выполнения оператора Unload), все переменные уровня этой формы удаляются

Переменные уровня модуля " живы", пока " живёт" ваше приложение. Т.е. " живы" всегда.

Некоторые замечания:

Перед использованием переменной, её обязательно нужно объявить. Это избавит вас от лишних ошибок.

Переменным нужно давать осмысленные имена. Т.е. старайтесь не использовать имена типа a1, a2, a3, ab, ccc и т.п. Поверьте, рано или поздно вы запутаетесь в своей же программе! Лучше всего переменным давать английский эквивалент того, что хранит данная переменная. Например, для хранения некоторой суммы денег, переменная может быть названа как cashMoney. Если у вас английским не очень, то можете использовать транслит, т.е. переменную назвать, например как summaDeneg. Ну и т.п. Кириллицу в имени переменной использовать нельзя.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.