Разработка программы «Dialog»

Постановка задачи.

Разработать программу, имитирующую диалог между пользователем и компьютером. По включению программы курсор мигает в поле ввода - пользователь вводит свое имя (например, Роман)  и нажимает клавишу Enter -  появляется вопрос: «Роман,  скажите, какая собачка у Маши Распутиной?» (при этом кнопки «Мопс» или «Такса», бывшие до этого момента недоступными становятся доступными) -  пользователь нажимает кнопку «Мопс» или «Такса» -  в ответ появляется соответствующая реплика.  Пользователь может или закрыть программу, нажав кнопку «Close», или повторить диалог, нажав кнопку «Очистить». При этом поле ввода и две метки очищаются от старых значений, кнопки «Мопс», «Такса» и «Очистить» опять становятся недоступными, а курсор снова мигает в поле ввода (см. рис. 1).


Рисунок 1

 

Основы программирования

Ÿ         Оператор условия.

В данной теме вы освоите оператор условия If ... Then ... Else... (Если ... То ... Иначе...).

Синтаксис оператора условия (многострочный вариант):

            If  условие  Then

                [выражение1]

           Else

                [выражение2]

            End  if           конец блока if

Или, если всё умещается в одну строку:

If  условие  Then   [выражение1]  Else [выражение2]

Пример:

Сколько Маше лет?

Если вы ввели в ответ Age (возрост)  число 15, то вы угадали, иначе не угадали.

  If Age = 15 Then

Label1.Caption = “Вы угадали!”

  Else

            Label1.Caption = “Вы НЕ угадали!”

  End If

 

 

Рекомендуемый план разработки программы

1.      Запустите Visual Basic. Откроется окно New Project. Нажмите кнопку “OK”.  На форму Fom1 разместите с панели элементов (ToolBox) следующие элементы:  поле ввода TextBox, 3 метки Label, 4 кнопки CommandButton


Рисунок 2.

Расположите все элементы в соответствие с рисунком 2.

 

2.      Сохраните свою работу следующим образом:

Откройте меню File  и пункт Save Project As.. Вам откроется форма Save File As. Теперь нажмите в окне после слов «Сохранить в: » маленькую кнопку со стрелкой и найдите то место на диске (в папках, директориях), в котором вы сохраняете свои работы или файлы.  Там создайте новую папку под названием Dialog. Откройте ее и в ней сохраните два(!) файла. Первый файл, который по умолчанию называется Form1.frm, переименуйте, например, так: dial и нажмите кнопку “Сохранить”. Второй файл, который появится сразу как только вы сохраните первый,  переименуйте, например, так: mydialog. Обязательно проверьте, как сохранился ваш проект. Для этого откройте папку Dialog. Там должно находиться пока два файла: dial.frm и mydialog.vbp. Последующие сохранения вы будете делать очень просто, нажав иконку  «Save Project”, но делайте это как можно чаще – желательно перед каждым запуском разрабатываемой программы.

 

3.      Интерфейс. Продолжите свою работу над интерфейсом программы. А именно, используя панель свойств, очистите от текста заголовки (Caption) элементов Text1, Label2 и Label3. В заголовке метки1 напишите: “Введите ваше  имя и нажмите  Enter:”. В заголовке кнопки1 наберите: “Basic”, кнопки2 –  «Delphi”,  кнопки3 – «Очистить»,  кнопки4 – “Close”, формы1 – «Dialog» (см. рис.1). 

 

4.      Программирование клавиши Enter. Откройте код (текст) вашей программы (ViewCode или F7).  В левом окне нажмите маленькую кнопку со стрелкой и выберите элемент Text1, перейдите в правое окно и, открыв его, выберите процедуру KeyPress – откроется заготовка процедуры  Text1_KeyPress(KeyAscii As Integer). В ней напишите следующее выражение (см. жирный шрифт):

 

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13  Then  Label2.Caption = Text1.Text + ", какая собачка у Маши_ _Распутиной?"

End sub

Эта процедура обрабатывает событие нажатия кнопки “Enter” (N13), а написанное вами выражение означает:

Если нажатая клавиша есть клавиша Enter, то в свойство Caption метки2 вывести строку (что справа):  имя пользователя из Text1.Text плюс выражение в кавычках.

            Сохраните программу (FileSave Prject или соответствующая иконка) и запустите ее (RunStаrt или F5). Проверьте работу созданной процедуры: в Text1 ввести имя и нажать клавишу Enter.

 

5. Программирование кнопок “Мопс” и “Такса”. Войдите в код программы и в левом окне выберите элемент Command1, перейдите в правое окно и щелкните по событию Click – откроется заготовка процедуры для обработки события щелчка по кнопке1. В нее вставьте следующее выражение(жирный щрифт):

 

Private Sub Command1_Click()

Label3.Caption = "Нет! " + Text1.Text + ". У нее не мопс."

End Sub

 

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

 

Private Sub Command2_Click()

Label3.Caption  = "Молодец!  У нее маленькая такса."

End Sub

 

6.  Закрытие программы. Щелкните дважды по кнопке “Close” и вставьте в ее процедуру слово End.

Сохраните проект и протестируйте его.

 

Развитие программы.

1.      Программирование доступа к элементам. Весьма желательно, чтобы ваша программа направляла действия пользователя в русле алгоритма задачи. В данном проекте целесообразно оградить пользователя от несвоевременного нажатия на кнопки 1, 2 и 3. Пусть его внимание будет сосредоточено на вводе своего имени. Для этого сделайте все кнопки, кроме кнопки Close, в начале недоступными: в окне свойств установите свойcтсво Enаbled = false. Как только пользователь введет имя и нажмет кнопку Enter, откройте доступ к кнопкам “Мопс” и “Такса”, а затем, после нажатия одной из этих кнопок,  откройте кнопку “Очистить”. 

Подсказка. В соответсвующие процедуры вставьте выражение:

CommandN.Enabled = true

      Здесь N – номер кнопки.

 

2.      Курсор и фокус. Чтобы яснее было пользователю, что делать в вашей программе, в дополнение к предыдущему пункту, сделайте так, чтобы по включению программы, курсор обязательно находился в поле ввода (Text1), чтобы этот объект находился в фокусе.

Подсказка. В окне свойств объекта Text1 его свойству TabIndex придайте значение, равное 0.

 

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

Подсказка. Сделайте двойной щелчок по кнопке “Очистить” и вставьте:

 

Private Sub Command4_Click()

   Label2.Caption = ""     вставить пустую строку

   Label3.Caption = ""

   Command1.Enabled = False

   Command2.Enabled = False

   Text1.Text = ""

   Text1.SetFocus   ‘ установить фокус на объекте Text1  !!!

   Command3.Enabled = False

End Sub

                         Курсор снова мигает в поле ввода !

 

4.      Защита от ввода пустой строки. Если пользователь забыл ввести свое имя, то ваша программа должна сказать ему об этом.

Подсказка. Дополните процедуру обработки выражением, которое означает: если в поле ввода введен какой-либо текст, то выполнить последующие три оператора, иначе (Else), т.е. если ничего не введено (другими словами, введена пустая строка (“”)), то вывести окно с текстом "Введите, пожалуйста, ваше имя!"

 

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = "13" Then

 If Text1.Text <> "" Then

  Label2.Caption = Text1.Text + ", какая собачка у Маши Распутиной?"

  Command1.Enabled = True

  Command2.Enabled = True

  Else

  MsgBox ("Введите, пожалуйста, ваше имя!")

 End If

End If

 

Здесь оператор IfThenElse применен в полном формате. Мы еще вернемся к этой констркции в следующих темах.

 

5.      Дизайн. Сделайте шрифт (тип, цвет, размер) отличным от шрифта по умолчанию, а также форму выполните в цвете.

Подсказка. Все эти свойства найдете в окне свойств.

 

Hosted by uCoz