Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3925 / 218 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 8:

Циклы и таймеры

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >

Следующий шаг: использование объекта таймера для установки ограничения по времени

Еще одним интересным применением таймера является настройка его на ожидание заданного периода времени и последующего разрешения или запрещения какого-либо действия. Это снова похоже на установку в вашей программе секундомера - вы устанавливаете свойство Interval на время желаемой задержки, а затем запускаете часы, установив свойство Enabled на значение True.

В следующем упражнении показано, как можно использовать этот подход для установки ограничения по времени для ввода пароля. Паролем для этой программы является слово "secret". Эта программа использует таймер для собственного закрытия, если в течение 15 секунд не был введен правильный пароль. Такая программа может стать частью большого приложения. Вы также можете использовать эту методику применения таймера для отображения на экране приветствия или сообщения об авторских правах, или для повтора через некоторый интервал времени некоторого события, такого, как сохранение файла на диск через каждые десять минут.

Установка ограничения по времени на ввод пароля

  1. В меню File (Файл) укажите на New (Создать), а затем щелкните на Project (Проект). Появится диалоговое окно New Project (Создать проект).
  2. В папке c:\vbnet03sbs\Гл.7 создайте новый проект с именем My Timed Password. Будет создан новый проект, и в Конструкторе Windows Forms появится пустая форма.
  3. Придайте форме размеры небольшого прямоугольного окна, примерно с окно ввода.
  4. Щелкните в окне области элементов на элементе управления TextBox, расположенном на закладке Windows Forms, а затем нарисуйте в центре формы текстовое поле для пароля.
  5. Щелкните в области элементов на элементе управления Label, а затем нарисуйте над текстовым полем длинную метку.
  6. Щелкните в области элементов на элементе управления Button, а затем нарисуйте под текстовым полем кнопку.
  7. Дважды щелкните в области элементов на элементе управления Timer. Visual Studio добавит в область компонент, расположенную под формой, объект таймера.
  8. Установите в программе свойства, приведенные в следующей таблице.

    Объект Свойство Установка
    Label1 Text "Введите свой пароль в течение 15 секунд"
    TextBox1 PasswordChar "*"
    Text пустой (empty)
    Button1 Text "Попробовать пароль"
    Timer1 Enabled True
    Interval 15000
    Form1 Text "Пароль"

    Настройка PasswordChar будет отображать при вводе пользователем пароля в текстовом поле символы звездочки (*). Установка свойства Interval таймера на значение 15000 дает пользователю 15 секунд на то, чтобы ввести пароль и щелкнуть на кнопке Попробовать пароль. Установка свойства Enabled в значение True запустит таймер сразу, как только будет запущена программа. Если ваш таймер снова может понадобиться при дальнейшей работе программы, то вы можете отключить это свойство и включить его в какой-либо процедуре события.

    Ваша форма должна выглядеть примерно так.


  9. Сделайте двойной щелчок мышью в области компонент на объекте таймера, а затем введите в процедуре Timer1_Tick события следующие операторы:

    MsgBox("Извините, время вышло.")
    End

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

  10. Отобразите форму, сделайте двойной щелчок мышью на объекте кнопки, а затем введите в процедуре события Button1_Click следующие операторы:

    If TextBox1.Text = "secret" Then
    Timer1.Enabled = False
    MsgBox("Добро пожаловать в систему!")
    End
    Else
    MsgBox("Извините, я вас не знаю.")
    End If

    Этот код программы проверяет, равен ли введенный в текстовом поле пароль слову "secret". Если да, то таймер отключается, отображается приветственное сообщение и программа завершается. Более полезная программа может в этом месте продолжить работать. Если введенный пароль неверен, пользователь получает уведомление в окне сообщения и получает еще одну попытку ввести пароль. Но у пользователя есть только 15 секунд, чтобы это сделать!

  11. Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на панели инструментов.
Примечание. Готовая программа Timed Password лежит в папке c:\vbnet03sbs\Гл.7\timed password.

Тестирование программы Timed Password

  1. Чтобы запустить программу, щелкните на кнопке Start (Начать). Программа запустится, и 15-секундные часы начнут тикать.
  2. Введите в текстовое поле слово "откройся". Символы звездочки скроют текст вашего ввода, как показано здесь.


  3. Щелкните на кнопке Попробовать пароль. На экране появится окно сообщения, уведомляющее вас о некорректном ответе.


  4. Щелкните на OK и подождите, пока истечет период "регистрации". Программа отобразить сообщение об истечении времени.


  5. Щелкните на OK, чтобы закрыть программу.
  6. Снова запустите программу, введите в текстовом поле secret (правильный пароль), а затем щелкните на Попробовать пароль.
  7. Программа отобразит такое сообщение.


  8. Щелкните на OK, чтобы закрыть программу. Появится среда разработки Visual Basic. Существуют различные способы практического применения объектов таймера. Как и в случае с циклами For...Next и Do, вы можете использовать объекты таймера для повторного выполнения команд или процедур столько раз, сколько потребуется в вашей программе.

Краткая справка по лекции 7

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

Добавьте свои операторы между операторами цикла For и Next. Например:

Dim i As Integer
For i = 1 To 10
MsgBox("Нажмите ОК!")
Next i
Использовать с операторами заданную последовательность чисел

Поместите свои операторы в цикл For...Next и используйте для определения последовательности чисел ключевые слова To и Step. Например:

Dim i As Integer
For i = 2 To 8 Step 2
TextBox1.Text = TextBox1.Text & i
Next i
Избежать бесконечного цикла Do Убедитесь, что цикл имеет проверяемое условие, которое может принять значение False.
Досрочно выйти из цикла For \dots Next

Используйте оператор программы Exit For. Например:

Dim InpName As String
Dim i As Integer
For i = 1 To 10
InpName = InputBox("Имя?")
If InpName = "Вася" Then Exit For
TextBox1.Text = InpName
Next i
Выполнять группу операторов программы до тех пор, пока не выполнится заданное условие

Поместите эти операторы между операторами Do и Loop. Например:

Dim Query As String = ""
Do While Query <> "Yes"
Query = InputBox("Вася?")
If Query = "Yes" Then MsgBox("Привет")
Loop
Выполнять цикл до тех пор, пока условие не станет равно True

Используйте цикл Do с ключевым словом Until. Например:

Dim GiveIn As String
Do
GiveIn = InputBox("Say 'Uncle'")
Loop Until GiveIn = "Uncle"
Выполнять цикл в вашей программе в течение указанного интервала времени Используйте элемент управления Timer.
< Лекция 7 || Лекция 8: 123456 || Лекция 9 >
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Светлана Ведяева
Светлана Ведяева
Россия, Саратов