Использование усовершенствованной панели

Один из новых элементов, входящих в комплект Visual Basic 6, — усовершенствованная панель (CoolBar). Этот элемент встречается в программах семейства Microsoft Office (рис. 5.10), Internet Explorer и IDE VisualBasic. Усовершенствованная панель представляет собой закрепляемый контейнер, в котором могут находиться другие элементы — панели инструментов, комбинированные поля и надписи. Самая характерная черта этого элемента — кнопки, которые «приподнимаются», если задержать над них указатель мыши (похожая возможность предусмотрена в деревьях и табличных списках).

Усовершенствованная панель состоит из одной или нескольких полос (bands), причем в каждой полосе может находиться один элемент.

Использование усовершенствованной панели - student2.ru

Рис.5.10. Усовершенствованная панель

К сожалению, документация Microsoft по этому элементу очень бедна. И все же я отыскал путь, который упростит обучение. Давайте попробуем:

1. Откройте проект из предыдущего раздела, если это не было сделано ранее. Мы обновим его для работы с усовершенствованной панелью.

2. Щелкните на панели элементов правой кнопкой мыши и выберите в контекстном меню команду Components.

3. Прокрутите список в диалоговом окне Components и установите флажки рядом со строками Microsoft Windows Common Controls 6.0 и Microsoft Windows Common Controls-3 6.0. Элемент усовершенствованной панели относится к Common Controls-3. Нам также понадобятся элементы Common Controls 6.0 для работы с панелью инструментов и списком изображений.

4. Нажмите кнопку OK, чтобы добавить элементы на панель. 5.Поместите элемент усовершенствованной панели на форму frmMain.

6. Щелкните на элементе панели инструментов, чтобы сделать его активным.

7. Нажмите Ctrl+X, чтобы вырезать элемент с формы.

8. Щелкните на усовершенствованной панели и вставьте в него панель инструментов клавишами Ctrl+V.

9. В окне свойств задайте свойству Name усовершенствованной панели значение сbrСоо1Ваг,а свойству Align — значение1 - Align Top.

10. Щелкните в строке (Custom), чтобы вызвать диалоговое окно со страницами свойств усовершенствованной панели (рис. 5.11).

Использование усовершенствованной панели - student2.ru

Рис. 5.11. Вкладка General в страницах свойств усовершенствованной панели

11. На вкладке General нам делать практически нечего, поэтому щелкните на вкладке Bands.

На рис 5 12 показаны общие свойства элемента усовершенствованной панели Чтобы панель инструментов хорошо смотрелась, ее необходимо сделать дочерним элементом первой полосы усовершенствованной панели.

12. Проследите за тем, чтобы в поле Index было указано значение 1, и выберите из списка Child строку tbrToolbar.

13. Закройте диалоговое окно свойств кнопкой ОК.

Наша панель инструментов (рис. 5.13) выглядит довольно странно - она выводится над усовершенствованной панелью, а не на ней. Кроме того, все кнопки находятся в «поднятом» состоянии. Чтобы панель выводилась правильно, нам придется изменить некоторые из ее свойств.

14. Нажмите кнопку на панели инструментов, чтобы сделать ее активным элементом.

15. Дважды щелкните в строке (Custom) окна свойств, чтобы вызвать диалоговое окно со страницами свойств данного элемента.

16 На вкладке General задайте свойству Арреаrаnce значение 0 - ccFlat. Haжмите кнопку Apply, и вы увидите, как панель инструментов «погрузится» в усовершенствованную панель.

Использование усовершенствованной панели - student2.ru

5.12. Вкладка Bands в страницах свойств усовершенствованной панели

17. ЗaдaйтecвoйcтвyStyleзнaчeниe1 - tbrFlat. Нажмите кнопку Арр1у кнопки «погружаются» в панель инструментов.

18. Закройте диалоговое окно свойств кнопкой ОК.

ПОДСКАЗКАЕслиуказать отдельный список изображений в свойстве HotImage List, значки на кнопках будут изменяться при прохождении над ними указателя мыши. У вас получатся интерактивные кнопки, которые реагируют на присутствие мыши! Однако при этом необходимо учесть, что изображения в обоих списках, относящиеся к одной кнопке, должны иметь одинаковую позицию (Index), потому что панель инструментов позволяет указать только один индекс в поле Image.

19. Запустите проект клавишей F5. Проведите указателем мыши над кнопками — вы увидите, как они «поднимаются» из панели инструментов (рис. 5.14).

Использование усовершенствованной панели - student2.ru

Рис. 5.14. Усовершенствованная панель в действии

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

1. Остановите работу программы кнопкой [x] или командой File > Exit из ее меню.

2. Поместите на усовершенствованную панель комбинированное поле. Убедитесь в том, что поле находится именно на панели, а не на форме.

3. Поместите флажок на усовершенствованную панель. Задайте его свойству Caption значение Установи меня!

4. Выделите панель cbrCoolbar и откройте диалоговое окно со страницами свойств, щелкая на строке (Custom).

5. Перейдите на вкладку Bands и введите в поле Index значение 2 — для этого достаточно щелкнуть на кнопке со стрелкой Использование усовершенствованной панели - student2.ru находящейся справа от поля. В результате страница свойств будет относиться ко второй полосе усовершенствованной панели.

6. Выберите в списке Child строку Combo1, а в поле Caption введите строку Шрифт. 1. Примените внесенные изменения кнопкой Apply.

8. Перейдите к третьей полосе (укажите 3 в поле Index). Выберите в списке Child строку Checkl.

9. Закройте диалоговое окно кнопкой ОК.

10. Запустите проект и проследите за внесенными изменениями.

Обратите внимание — теперь вы можете захватить мышью корешок (вертикальные черточки в левой части полосы) и переместить полосу в нужное место. Впрочем, это лишь одна из приятных возможностей, присущих усовершенствованным панелям.

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

Что нового мы узнали?

В этом уроке мы научились:

Использование усовершенствованной панели - student2.ru Определять, когда следует пользоваться меню и панелями инструментов.

Использование усовершенствованной панели - student2.ru Создавать меню с помощью редактора.

Использование усовершенствованной панели - student2.ru Проектировать меню по аналогии с другими Windows-приложениями.

Использование усовершенствованной панели - student2.ru Создавать панели инструментов с помощью специального элемента.

Использование усовершенствованной панели - student2.ru Создавать изображения на кнопках с помощью списка изображений.

Использование усовершенствованной панели - student2.ru Писать коддля обслуживания панелей инструментов.

Использование усовершенствованной панели - student2.ru Объединять элементы в усовершенствованной панели.

Урок 6

Логика и последовательность

Выполнения программы

Использование усовершенствованной панели - student2.ru Как «думает» компьютер?

Использование усовершенствованной панели - student2.ru Логические операторы

Использование усовершенствованной панели - student2.ru Сравнения

Использование усовершенствованной панели - student2.ru Принятие решений в программе

Использование усовершенствованной панели - student2.ru Выполнение повторяющихся действий

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

Урок начинается с краткого изложения основ компьютерной логики. Затем мы познакомимся с условными операторами, позволяющими программировать более сложные алгоритмы с принятием решений. Наконец, вы научитесь программировать повторяющиеся действия с помощью разнообразных циклов.

Как «думает» компьютер?

Многие люди, плохо знакомые с компьютерами, разделяют общее заблуждение — они полагают, что компьютеры умны. Ничто не может быть дальше от истины. Компьютер в самом лучшем случае умен в той же степени, что и программист. Компьютер может принять решения, но для этого его придется запрограммировать. Код принятия решений в значительной степени ограничивается теми решениями, которые программист может предусмотреть в своем приложении. Логические сравнения необходимы для выполнения компьютером полезных задач. Они используются при работе программ, обработке ошибок, работе с файлами и во всех остальных операциях. Компьютерная программа принимает решения по тем же принципам, что и человек: она формулирует некоторое условие и вычисляет его, чтобы получить результат. Затем она берет результат и сравнивает его с набором заранее заданных правил, чтобы узнать, как ей действовать дальше. Например, банкомат должен определить, правильно ли введен код клиента. Для этого он сравнивает введенный код с базой данных известных номеров. Если найденный номер совпадает с профилем клиента в банковской базе данных, клиент получает доступ к счету. Аналогичным образом принимаются практически любые компьютерные решения.

Логические операторы

Чтобы ваши приложения «поумнели», необходимо прежде всего понять, как компьютер обрабатывает информацию.

Хотите — верьте, хотите — нет, но вся информация в компьютере состоит из единиц и нулей, называемых двоичными числами. Любые математические или логические операции могут быть выражены на языке двоичной логики. Математические операции выполняются в двоичной системе — это означает, что если результат превышает 1, он снова сбрасывается в 0, а к следующему по порядку биту прибавляется 1. Мы с вами привыкли считать в десятичной системе — если разряд оказывается больше 9, он обнуляется, а следующая цифра увеличивается на 1 и т. д. Поскольку компьютер работает с нулями и единицами, он может использовать их для представления условий «истина» и «ложь». Двоичный ноль обозначает условие «ложь», а 1 — условие «истина». На этом принципе построена логическая алгебра. Используя различные комбинации выражений и логических операто-

ров, можно выполнять разнообразные сложные действия — выводить графику высокого разрешения, создавать специальные эффекты и осуществлять шифрование. Из ближайших разделов вы узнаете о пяти логических операторах: AND, EQV, OR, XOR и NOT.

Логический оператор AND

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

Логический оператор AND работает очень просто. Если оба выражения истинны, результат также является истинным. Если хотя бы одно из выражений ложно, результат тоже будет ложным. В табл. 6.1 перечислены некоторые комбинации выражений и результаты, полученные при их объединении операцией AND.

Таблица 6.1. Результаты выполнения логической операции AND для двух выражений

Выражение 1 Выражение 2 Результат
Истина Истина Истина
Истина Ложь Ложь
Ложь Истина Ложь
Ложь Ложь Ложь

Этот логический оператор часто используется в нетривиальных графических алгоритмах. Если в поразрядной операции бит равен 1, говорят, что он установлен; считается, что этот бит имеет значение «истина». Если бит равен 0, он считается «ложным». При выполнении поразрядных логических операций происходит логическое сравнение соответствующих битов, а результирующие значения сумми-руются для получения числа.

Чтобы лучше понять, как это делается, взгляните на табл. 6.2. Мы берем два числа, 217 и 106, и объединяем их логической операцией AND. Битам в разрядах от 128 до 1 в двоичной математике соответствуют биты от 7 до 0. Поскольку двоичные операции выполняются по модулю 2, можно сказать, что первый бит равен 2°, или 1. Второй бит равен 21, или 2. Третий бит равен 22, или 4. Аналогично определяются значения всех остальных битов.

Возможно, вы обратили внимание на то, что биты нумеруются справа налево. Дело в том, что в двоичных операциях старший бит всегда находится слева, а младший — справа. Кроме того, самый правый бит всегда считается нулевым. Такая нумерация упрощает представление чисел в двоичной системе. В следующей таблице представлены значения разрядов 8-битных чисел, которые чаще всего используются в вычислениях. Биты таких чисел нумеруются от 0 до 7.

Таблица 6.2. Применение логической операции AND для двух чисел

Номер бита  
Двоичное значение 27 26 25 24 23 22 21  
Целое значение  
Выражение 1 1.
Выражение 2
Выражение 1 AND
Выражение 2                  

Если сложить все значения, представленные единицами в четвертой строке этой таблицы (128+64+16+8+1), получится 217. Суммирование значений для пятой строки дает 106. Если объединить значения каждой пары битов операцией AND, мы получим последовательность битов, приведенную в шестой строке таблицы. Суммирование их значений дает 72. В соответствии с данной таблицей

217 AND 106 = 72

Чтобы проверить правильность вычислений, рассмотрим следующий пример:

1. Откройте окно непосредственных вычислений клавишами Ctrl+G.

2. В открывшемся окне введите следующие строки:

A=217; B=106

? A AND B

В полном соответствии с таблицей результат будет равен 72.

3. Попробуйте выполнить операцию AND для других пар чисел:

? 163 AND 8

? 55 AND 12

? 37 AND 7

? 72 AND 255

? 255 AND 0

Результаты должны быть равны 0, 4, 5, 72 и 0.

Чтобы проверить результаты вычислений, попробуйте воспроизвести структуру табл. 6.2 для других чисел. Запишите значения отдельных битов и вычислите результат вручную. Это поможет вам овладеть основами двоичной логики.

Логический оператор EQV

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

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

Таблица 6.3. Результаты выполнения логической операции ЕQV для двух выражений

Выражение 1 Выражение 2 Результат
Истина Истина Истина
Истина Ложь Ложь
Ложь Истина Ложь
Ложь Ложь Истина

Начинающим программистам этот оператор обычно не нужен.

Логический оператор OR

Если вы хотите убедиться в том, что хотя бы одно из выражений истинно, воспользуйтесь оператором OR. Если хотя бы одно из выражений истинно, результат будет истинным. Если оба выражения ложны, результат будет ложным. В табл. 6.4 приведены различные комбинации выражений и результаты операции OR.

Таблица 6.4. Результаты выполнения логической операции OR для двух выражений

Выражение 1 Выражение 2 Результат
Истина Истина Истина
Истина Ложь Истина
Ложь Истина Истина
Ложь Ложь Ложь

Два числа можно объединить логической операцией OR, как это делалось для операции AND. Пример показан в табл. 6.5.

Таблица 6.5. Применение логической операции OR для двух чисел

Номер бита б  
Двоичное значение 27 26 25 24 23 22 21  
Целое значение  
Выражение 1
Выражение 2
Выражение 1 OR
Выражение 2                  

Чтобы проверить правильность вычислений, рассмотрим следующий пример:

1. Откройте окно непосредственных вычислений клавишами Ctrl+G.

2. В открывшемся окне введите следующую строку:

? 73 OR 232

Результат, как и в таблице, будет равен 233.

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

55 OR 12

37 OR 7

72 OR 255

255 OR 0

Результаты должны быть равны 63,39,255 и 255. Как видите, при объединении операцией OR любого числа с 255 результат будет равен 255.

Логический оператор XOR

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

Таблица 6.6. Результаты выполнения логической операции XOR для двух выражений

Выражение 1 Выражение 2 Результат
Истина Истина Ложь
Истина Ложь Истина
Ложь Истина Истина
Ложь Ложь Ложь

Давайте используем операцию XOR для чисел из предыдущего примера (см. 6.7). Это наглядно показывает, чем отличаются эти две операции.

Таблица 6.7. Применение логической операции XOR для двух чисел

Номер бита  
Двоичное значение 27 26 25 24 23 22 21  
Целое значение  
Выражение 1
Выражение 2
Выражение 1 XOR Выражение 2

Проверьте правильность вычислений:

1. Откройте окно непосредственных вычислений клавишами Ctrl+G.

2. В открывшемся окне введите следующую строку:

? 73 XOR 232

Результат, как и в таблице, будет равен 161.

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

55 XOR 12

37 XOR 7

72 XOR 255

255 XOR 0

Результаты должны быть равны 59, 34,183 и 255.

Логический оператор NOT

Логический оператор NOT возвращает обратное логическое значение. Он может пригодиться при проверке условия, противоположного указанному. Рассмотрим следующий фрагмент:

Dim Successful As Boolean

Successful = True

If Not Successful Then

MsgBox "Операция завершилась неудачно"

End If

Мы объявляем переменную Successful, имеющую логический тип данных, и присваиваем ей значение True (истина). Проверяя условие If Not Successful, мы фактически хотим узнать, является ли данная переменная ложной. В программе переменную Successful можно заменить функцией, которая возвращает True или False, и проверить возвращаемое значение. Как видно из табл. 6.8, результат операции NOT всегда противоположен значению исходного выражения.

Таблица 6.8. Результаты выполнения логической операции NOT

Выражение Результат
Истина Ложь
Ложь Истина

На практике операция NOT обычно используется для проверки исключительных состояний и, как вы вскоре убедитесь, при проверке ошибок. А пока рассмотрим работу оператора NOT в Visual Basic на следующем простом примере:

1. Введите в окне непосредственных вычислений следующую строку:

? NOT True

Результат будет равен False.

2. Проверим противоположное условие:

? NOT False

Результат будет равен True.

Сравнения

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

Проверка условия «равно»

Почти в каждом приложении требуется сравнить два выражения и узнать, совпадают ли их значения. В Visual Basic эта задача решается оператором =. Он встречался во многих примерах, приведенных ранее. Проверка равенства выполняется так:

If x = 3 Then

MsgBox "Значение x равно 3"

End If

Оцените красоту Visual Basic — программа получается очень похожей на простой английский текст. Данный фрагмент можно было бы сформулировать словами:

Если значение x равно 3, то вывести диалоговое окно.

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

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

1. Создайте новый проект командой File > New Project.

2. В диалоговом окне New Project выберите значок Standard EXE. Нажмите кнопку ОК.

3. Задайте свойству Name формы Form1 значение frmMain, а свойству Caption — значение Выберите число.

4. Создайте на форме две кнопки.

5. Задайте свойству Name первой кнопки значение cmdGetSecretNumber, а свойству Caption — значение Загадать &число.

6. Задайте свойству Name второй кнопки значение cmdGuess, a свойству Caption — значение &Угадать.

7. Дважды щелкните на форме frmMain, чтобы открыть окно программы.

8. Вставьте следующий фрагмент в процедуру события Load формы frmMain:

Private Sub Form_Load()

Загадать число

SecretNumber = GetSecretNumber()

End Sub

9. Вставьте следующую строку в секцию (General)(Declarations) формы frmMain:

Option Explicit

Private SecretNumber As Integer

10. Перейдем к созданию функции GetSecretNumber(), которая является одним из важнейших компонентов приложения. Вставьте следующий фрагмент в секцию (General)(Declarations):

Private Function GetSecretNumber() As Integer

' Загадать число от 1 до 10

Randomize

GetSecretNumber = Int(Rnd(1) * 10) + 1

End Function

11. Вставьте следующий фрагмент в процедуру события Click кнопки cmdGetSecret Number:

Private Sub cmdGetSecretNumber_Click()

' Загадать число

SecretNumber = GetSecretNumber()

End Sub

12. Наконец, вставьте следующий фрагмент в процедуру события Click кнопки cmdGuess:

Private Sub cmdGuess_Click()

Dim guess As Integer

Dim msg As String

Dim cap As String

' Создать сообщение

msg = "Введите число от 1 до 10"

' Получить число от пользователя

guess = CInt(InputBox(msg))

'Число угадано верно?

If guess = SecretNumber Then

' Да! Пользователь угадал!

msg = "Вы угадали!"

cap = "Верно!"

' Вывести сообщение

MsgBox msg, vbExclamation, cap

'Закончить игру

End

Else

' Нет. Следующая попытка...

msg = "Неверно."

cap = "Попробуйте снова!"

MsgBox msg, vbInformation, cap

End If

End Sub

Эта процедура — самая важная часть нашего примера. Знак = впервые встречает-ся в строке msg = "Введите число...", однако сравнение происходит лишь в строке If guess = SecretNumber Then. Мы проверяем, совпало ли введенное значение с загаданным числом.

13. Сохраните проект. Мы изменим его в нескольких ближайших примерах.

14. Запустите проект клавишей F5. Если нажать кнопку Загадать число, программа загадывает случайное число от 1 до 10. Нажмите другую кнопку и попробуйте угадать это число!

При каждой попытке программа сообщает, было число названо верно или нет (рис.6.1).

Использование усовершенствованной панели - student2.ru

Рис. 6.1. Игра с угадыванием числа

Проверка условия «больше»

Для проверки условия «больше» в программировании, как и в алгебре, используется символ >. Рассмотрим следующий фрагмент:

if x > 3 Then

MsgBox "x больше 3"

End If

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

Откройте проект из предыдущего примера и выполните следующие действия:

1. Откройте окно программы, дважды щелкнув на форме frmMain.

2. Отредактируйте процедуру события Click кнопки cmdGuess и приведите ее к следующему виду:

Private Sub cmdGuess_Click()

Dim guess As Integer

Dim msg As String

Dim cap As String

' Создать сообщение

msg = "Введите число от 1 до 10"

'Получить число от пользователя

guess = CInt(InputBox(msg))

' Число угадано верно?

Select Case guess

Case Is = SecretNumber

' Да! Пользователь угадал!

msg = "Вы угадали!"

cap = "Верно!"

'Вывести сообщение

MsgBox msg, vbExclamation, cap

' Закончить игру

End

Case Is > SecretNumber

' Нет. Следующая попытка...

msg = "Неверно. Загаданное число меньше."

cap = "Попробуйте снова!"

MsgBox msg, vbInformation, cap .

End Select

End Sub

3. Сохраните и запустите проект.

Попробуйте угадать число. Если введенное вами число будет больше загаданного, программа сообщит вам об этом (рис. 6.2).

Использование усовершенствованной панели - student2.ru

Рис. 6.2. Названное число больше загаданного

Основные изменения в программе находятся в блоке, который начинается со строки Саsе Is > SесretNumber. Программа проверяет,что введенное число боль-ше SecretNumber. Если это условие не выполняется, следующий логичный шаг — убедиться в том, что введенное число меньше SecretNumber.

Проверка условия «меньше»

Для проверки условия «меньше» используется символ <:

if x < 3 Then

MsgBox "x меньше 3"

End If

Этот оператор дополняет оператор «больше». Довольно часто они используются вместе и проверяют, что величина принадлежит некоторому диапазону. Далее мы продолжим работать с предыдущим примером. Откройте проект и выполните следующие действия:

1. Откройте окно программы, дважды щелкнув на форме frmMain.

2. Отредактируйте процедуру события Click кнопки cmdGuess и приведите ее к следующему виду:

Private Sub cmdGuess_Click()

Dim guess As Integer

Dim msg As String

Dim cap As String

'Создать сообщение

msg = "Введите число от 1 до 10"

' Получить число от пользователя

guess = CInt(InputBox(msg))

' Число угадано верно?

Select Case guess

Case Is = SecretNumber

' Да! Пользователь угадал!

msg = "Вы угадали!"

cap = "Верно!"

' Вывести сообщение

MsgBox msg, vbExclamation, cap

' Закончить игру

End

Case Is > SecretNumber

' Нет. Следующая попытка...

msg = "Неверно. Загаданное число меньше."

cap = "Попробуйте снова!"

MsgBox msg, vbInformation, cap

Case Is < SecretNumber

' Нет. Следующая попытка...

msg = "Неверно. Загаданное число больше."

cap = "Попробуйте снова!"

MsgBox msg, vbInformation, cap

End Select

End Sub

3. Сохраните и запустите проект.

Попробуйте угадать число. Если введенное вами число будет меньше загаданного, программа сообщит вам об этом (рис. 6.3).

Использование усовершенствованной панели - student2.ru

Рис. 6.3. Названное число меньше загаданного

Проверка условия «не равно»

Если вы хотите убедиться в том, что одно значение отлично от другого, следует воспользоваться оператором <>:

if x <> 3 Then

MsgBox "x не равно 3"

End If

Этот оператор бывает особенно полезным в ситуациях, когда требуется проверить, что пользователь ввел значение. Чтобы понять, почему это так, запустите программу из предыдущего примера:

1. Нажмите кнопку Загадать число, чтобы сгенерировать случайное число от 1 до 10.

2. Нажмите кнопку Угадать.

3. В открывшемся окне ввода нажмите кнопку OK или Cancel

Появляется сообщение об ошибке — несовпадение типов. Нажмите кнопку End, чтобы завершить работу программы. Не вдаваясь в подробности процесса отладки, скажу, что ошибка возникла в следующей строке:

guess = CInt(InputBox(msg))

Дело в том, что функция CInt() должна получать данные, преобразуемые в целое число. Если функция вызывается для пустой строки, выдается сообщение об ошибке.

Чтобы предотвратить ошибку, перед проверкой следует убедиться в том, что пользователь ввел некоторое значение. Оператор <> идеально подходит для этой цели! Проверку можно выполнить следующей командой:

If rс <> "" Then

В переводе на человеческий язык это означает: «Если значение guess не равно пустой строке, то сделать что-то».

4. Отредактируйте процедуру события Click кнопки cmdGuess и приведите ее к следующему виду:

Private Sub cmdGuess__Click()

Dim guess As Integer

Dim msg As String

Dim cap As String

Dim rc As String

‘Создать сообщение

msg = "Введите число от 1 до 10"

‘Получить число от пользователя

rс = InputBox(msg)

‘Убедиться в том, что пользователь ввел значение...

If rс <> "" Then

‘Преобразовать строку в целое число

guess = CInt(rc)

' Число угадано верно?

Select Case guess

Case Is = SecretNumber

' Да! Пользователь угадал!

msg = "Вы угадали!"

cap = "Верно!"

' Вывести сообщение

MsgBox msg, vbExclamation, cap

‘Закончить игру

End

Case Is > SecretNumber

' Нет. Следующая попытка...

msg = "Неверно. Загаданное число меньше".

cap = "Попробуйте снова!"

MsgBox msg, vbInformation, cap

Case Is < SecretNumber

' Нет. Следующая попытка...

msg = "Неверно. Загаданное число больше".

cap = "Попробуйте снова!"

MsgBox msg, vbInformatidn, cap

End Select

Else

msg = "Вы должны ввести число!"

cap = "Введите число!"

MsgBox msg, vbInformation, cap

End If

End Sub

5. Сохраните и запустите проект

Наши рекомендации