Зависимые переключатели (OptionButton) — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Зависимые переключатели (OptionButton)

2022-10-29 41
Зависимые переключатели (OptionButton) 0.00 из 5.00 0 оценок
Заказать работу

Переключатели (радиокнопки) позволяют выбрать один вариант из нескольких, расположенных внутри рамки или объекта PictureBox.

Специфичные свойства

Value  ‑ получает значение True выбранного переключателя, а для всех осталь­ных переключателей это свойство равно False. При проек­тировании одно­му из переключателей можно указать Value=True.

Alignment  ‑ задает местоположение кнопки: 0 /1 - кнопка слева /справа от ее надписи.

Пример. На форме в одной рамке размещены четыре переключателя операций над числами (Option1-Option4), которые введены в поля Text1 и Text2. Кнопкой Вычислить запускается процедура вычисления вида:

Private Sub Command1_Click()

If Option1.Value Then

r=Val(Text1.Text)+Val(Text2.Text) ‘сложить числа

ElseIf Option2.Value Then

r= Val(Text1.Text)-Val(Text2.Text) ‘вычесть числа

ElseIf Option3.Value Then

r= Val(Text1.Text)*Val(Text2.Text) ‘умножить числа

Else

r= Val(Text1.Text)/Val(Text2.Text) ‘разделить числа

Endif

Label1.Caption= r ‘формирование метки с результатом вычисления

End Sub

Независимые переключатели (CheckBox)

Независимые переключатели (флажки, контрольные индикаторы).

Специфичные свойства

Value ‑ состояние переключателя: 0 - не установлен (галочка отсутствует в ри­сун­ке флажка); 1 - установлен (галочка указана); 2 - неопределен (закра­шен серым цветом).

Alignment  ‑ задает местоположение кнопки: 0 /1 - кнопка слева /справа от ее надписи. Обычно флажок используется для выбора одно­го из двух вариантов (например, оплачен счет или нет).

Пример. Имеется флажок Check1, задающий полужирный шрифт вво­димого текста в поле Text1. Процедура обработки события флажка имеет следующий вид:

Private Sub Check1_Click(): Text1.FontBold=Check1.Value=1: End sub

Списки (ListBox)

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

Специфичные свойства

List ‑ список строк (для перехода к следующей строке нажимаются кла­ви­ши ^Enter).

Columns/ListCount ‑ число колонок/строк в списке.

ItemData() ‑ указываются числа типа Long для каждого элемента списка. 

ListIndex, Text ‑номер выбранной пользовате­лем строки  (отсчет строк на­чи­­нает­ся с нуля) и текст этой строки.

NewIndex‑ номер последней стро­ки, занесенный в список методом AddItem.

MultiSelect =2 ‑ режим выборки более одной строки из списка. Выборку смежных строк осуществляют мышкой при нажатой клавише Shift, а не смежных ‑ щелчками мышки при нажатой клавише Ctrl.

Selected  ‑ используется при выполнении программы для определения вы­бран­ных строк. Если выбранная строка списка имеет номер n, то для этой строки Selected(n)=True. Таким образом, для программного оп­ре­де­ле­ния всех выбранных строк необходимо организо­вать цикл просмотра всех элементов свойства Selected, и элементы со зна­че­ни­ем True определят номера выбранных строк.

Sorted =True ‑ в режиме конструирования сортирует список в алфавитном порядке.

Метод AddItem   позволяет включить в список новую строку (первый параметр) в конец списка или в позицию, определяемую сортировкой, если она задана, либо по номеру, указанному вторым параметром.

Пример. List1.AddItem “Англия”, 4

Строка “Англия” помещается на пятое место в списке стран List1.

Для удаления всего списка используется метод Clear, а одной строки под номером n - метод RemoveItem  n-1 (List1.RemoveItem 4).

 

     В качестве примера составим программу “Калькулятор”. Общий вид формы изображен на рис 6.8.1. Создадим форму Form1 и разместим объекты: надписи Label1-Label5 (результат), текстовые поля Text1 (поле первого операнда) и Text2 (поле второго операнда), командные кнопки Command1 (Очистить), Command2 (Вычислить), Command3 (Далее), Command4 (Выход) и поле со списком операций List1

.                                           Рис. 6.8.1. Вид калькулятора

 

Присвоим значения свойствам Caption для формы и размещенных объектов согласно рис. 6.8.1. Для объекта List1 заполним свойство List списком названий арифметических операций. Дважды щелкая по форме и командным кнопкам для вызова программного окна, составим процедуры обработки событий Click (щелчок мышки) для командных кнопок:

Private Sub Command1_Click() ‘процедура кнопки “Очистить ”

Text1.Text = “”                  ‘очистить поле первого операнда Text1

Text2.Text = “”                  ‘очистить поле второго операнда Text2

Label5.Caption = “”           ‘надпись Label5 с результатом очищается

Text1.SetFocus                ‘фокус устанавливается на поле Text1

Command1.Enabled =False ‘блокировка кнопки “Очистить”

Command2.Enabled =False ‘блокировка кнопки “Вычислить”

Command3.Enabled =False ‘блокировка кнопки “Далее”

End Sub                           ‘конец процедуры

Private Sub Command2_Click() ‘процедура кнопки “Вычислить ”

Dim r As Single          ‘объявление переменной с результатом

Dim h1 As Single        ‘объявление переменной с операндом 1

Dim h2 As Single             ‘объявление переменной с операндом 2

Dim oper As Integer        ‘объявление переменной с номером операции

oper = List1.ListIndex      ‘номер выбранной операции в списке операции

h1 = Text1.Text           ‘перевод первого операнда в числовой формат

h2 = Text2.Text           ‘перевод второго операнда в числовой формат

If oper = 0 Then        ‘выбрана из списка операция сложения

r = h1 + h2            ‘сложить первый и второй операнд

 ElseIf oper = 1 Then    ‘выбрана из списка операция вычитания

r = h1 ‑ h2               ‘вычесть из первого второй операнд

 ElseIf oper = 2 Then      ‘выбрана из списка операция умножения

r = h1 * h2        ‘умножить первый операнд на второй операнд

 ElseIf oper = 3 And h2 <> 0 Then ‘выбрана операция деления не на 0

r = h1 / h2                ‘разделить первый операнд на второй операнд

 Else                            ‘ошибочное деление на ноль

r = 0                        ‘ответ при делении на ноль приравнивается нулю

End If                          ‘конец оператора If

Label5.Caption =r           ‘вывод ответа в форму в виде надписи Label5

Text1.SetFocus           ‘установка фокуса на поле первого операнда Text1

Command1.Enabled =True ‘разблокировка кнопки “Очистить”

Command2.Enabled =False ‘блокировка кнопки “Вычислить”

Command3.Enabled =True ‘разблокировка кнопки “Далее”

End Sub                      ‘конец процедуры

Private Sub Command3_Click() ‘процедура кнопки “Далее ”

Text1.Text = Label5.Caption ‘результат копируется в поле Text1

Text2.Text = “”               ‘поле второго операнда Text2 очищается

Label5.Caption = “”     ‘надпись Label5 с результатом очищается

List1.SetFocus        ‘фокус устанавливается на список операций

Command1.Enabled =True ‘разблокировка кнопки “Очистить”

Command2.Enabled =False ‘блокировка кнопки “Вычислить”

Command3.Enabled =False ‘блокировка кнопки “Далее”

End Sub                         ‘конец процедуры

Private Sub Command4_Click() ‘процедура кнопки “Выход ”

End                               ‘закончить выполнение программы

End Sub                     ‘конец процедуры

Private Sub Text1_Change() ‘обработка текущего значения поля Text1

‘блокировка кнопки “Вычислить”, если в полях ввода находятся не числа

Command2.Enabled = IsNumeric(Text1.Text) And IsNumeric(Text2.Text)

End Sub                     ‘конец процедуры

Private Sub Text2_ Change() ‘обработка текущего значения поля Text2

Text1_Change ‘вызов процедуры обработки события Change поля ввода Text1

End Sub

Private Sub Form_Activate() ‘активизация формы перед ее выводом

Command1_Click               ‘вызов процедуры обработки кнопки “Очистить”

End Sub

 

6.9. Комбинированные поля (ComboBox)

Комбинированное поле сочетает возможности текстового поля и списка и занимает меньше места, чем списки.

Специфичные свойства

List, ListCount, NewIndex, Listindex, Sort и методы AddItem, RemoveItem ‑  ана­логичны одноименным свойствам списков.

Style  ‑ задает тип поля: vbComboDropDown (раскрывающее) vbCom­bo­Simple (прос­тое) и vbComboDropDownList (раскрывающийся список).

Раскрывающее поле имеет справа кнопку со стрелкой. После ее нажатия появляется список, и можно выбрать нужный элемент. Он поместится в поле, либо его можно ввести в поле.

Простое поле аналогично раскрывающему, но список открыт.

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

6.10. Рисунки (Image)

Поля с рисунками (файлы типов BMP, ICO, WMF, EMF, GIF, JPEG).

Специфичные свойства

Picture  ‑ имя графического файла с рисунком.

Stretch =False ‑ размеры рисунка на форме автоматически подго­няю­тся под раз­мер исходного изображения, иначе (Stretch =True) изображение масшта­­би­ру­ет­ся вмес­те с элементом, растягиваясь или сжимаясь.

6.11. Графические поля (PictureBox)

Графические поля подобны рисункам, но имеют следующие отличия:

1. Занимают больше места, чем рисунки, и обеспечивают более высокое качество вывода.

2. Во время выполнения программы в поле можно выводить текст и графику методами Circle, Cls, Line, PaintPicture, Print, Pset.

3. Выполняют роль контейнера, в который можно поместить другие объекты (кнопки, текстовые поля, надписи и др.).

4. Изображение не растягивается (свойство Stretch=False).

Специфичные свойства

AutoSize =True ‑ размер поля подгоняется под изображение.

Image =True ‑ позволяет копировать графические поля при выполнении программы. Можно преобразовать картинки типа ICO в изображения BMP.

Примеры

Picture2.Picture=Picture1.Image       ‘копирование картинки

SavePicture Picture2.Picture,“Фото Иванова.bmp” ‘сохранение картинки в файле

Picture1.Picture=LoadPicture(“FilePic”) ‘загрузка картинки из файла “FilePic”

Picture1.Picture=LoadPicture()          ‘очистка поля

6.12. Таймеры (Timer)

Таймер не появляется на форме во время выполнения программы и проверяет показания системных ча­­сов.

Специфичное свойство Interval  задает интервал в миллисекундах (от 56 до 64757), и после истече­ния указанного интервала генерируется событие Timer. Тай­мер отклю­чает­ся при Interval=0 или Enabled=False. Общее количество тай­ме­ров для всех приложений ограничено числом 31.

Пример. Вывести надпись с текущим временем, обновляя эту над­пись через каждую секунду. Разместите на форме Timer и надпись Label1. За­дай­те для объекта Timer свойство Interval=1000 (одна секунда). Щелкни­те дважды на таймере и напишите процедуру для события Timer:

Private Sub timer1_Timer(): Label1.Caption=Time(): End Sub

Пример программы теcтирования по арифметике (рис. 6.12.1).

Кнопкой Тест запускается процедура очистки полей ввода и меток; запускается счетчик времени; формируются случайные числа, которые выводятся в качестве операндов в виде меток Label1-Label8. В метке Label14 находится число секунд, оставшихся до окончания тестирования.

     Кнопкой Проверить запускается процедура проверки правильности введенных ответов и, если ответ ошибочен, оценка снижается на балл и выводится правильный ответ в виде метки (Label9-Label12). Счетчик времени останавливается, выводится оценка (Label13). Кноп­кой Выход завершается работа программы.

 

Рис. 6.12.1. Форма тестирования

 

Приведем текст процедур обработки событий для данной задачи

‘Стандартный раздел (General)(Declaration) формы

Option Base 1                  ‘отсчет элементов массива начинается с единицы

Private H(4, 2) As Integer ‘объявление массива значений операндов

Private Sub Form_Activate() ‘активизация формы перед ее выводом

 ‘очистка меток и полей ввода

Label1.Caption = “”: Label2.Caption = “”: Label3.Caption = “”

Label4.Caption = “”: Label5.Caption = “”: Label6.Caption = “”

Label7.Caption = “”: Label8.Caption = “”: Label9.Caption = “”

Label10.Caption = “”: Label11.Caption = “”: Label12.Caption = “”

Label13.Caption = “”: Label14.Caption = “”

Text1.Text = 0: Text2.Text = 0: Text3.Text = 0: Text4.Text = 0

Command2.Enabled=False      ‘блокировка кнопки “Проверить”

End Sub ‘конец процедуры

Private Sub Command1_Click() ‘Процедура кнопки “Тест ”

Dim R As Integer             ‘объявление локальной переменной R

Timer1.Interval = 1000   ‘включение таймера с интервалом одна секунда

Randomize Timer       ‘включение счетчика случайных чисел

H(1, 1) = Rnd * 99 + 1    ‘первое слагаемое в интервале 1-100

H(1, 2) = Rnd * 99 + 1    ‘второе слагаемое в интервале 1-100

H(2, 1) = Rnd * 99 + 1    ‘уменьшаемое в интервале 1-100

H(2, 2) = Rnd * 99 + 1    ‘вычитаемое в интервале 1-100

If H(2, 2) > H(2, 1) Then ‘вычитаемое строго больше уменьшаемого

R = H(2, 1)               ‘вычитаемое и уменьшаемое меняются местами

H(2, 1) = H(2, 2)

H(2, 2) = R

End If

H(3, 1) = Rnd * 9 + 1      ‘первый множитель в интервале 1-10

H(3, 2) = Rnd * 9 + 1       ‘второй множитель в интервале 1-10

H(4, 2) = Rnd * 9 + 1        ‘делитель в интервале 1-10

H(4, 1) = (Int(Rnd * 9) + 1)*H(4,2) ‘делимое в интервале 1-100

Label1.Caption = H(1, 1) ‘вывод первого слагаемого в метку Label1

Label2.Caption = H(2, 1) ‘вывод уменьшаемого в метку Label2

Label3.Caption = H(3, 1) ‘вывод первого множителя в метку Label3

Label4.Caption = H(4, 1) ‘вывод делимого в метку Label4

Label5.Caption = H(1, 2) ‘вывод второго слагаемого в метку Label5

Label6.Caption = H(2, 2) ‘вывод вычитаемого в метку Label6

Label7.Caption = H(3, 2) ‘вывод второго множителя в метку Label7

Label8.Caption = H(4, 2) ‘вывод делителя в метку Label8

‘очистка полей с ответами школьника и меток с правильными ответами

Text1.Text = 0: Text2.Text= 0: Text3.Text= 0: Text4.Text= 0

Label9.Caption= “”: Label10.Caption = “”:Label11.Caption =””: Label12.Caption = “”

Label13.Caption = “” ‘очистка метки с оценкой

Label14.Caption = 60    ‘на ответ дается 60 секунд

Command2.Enabled=True ‘разблокировка кнопки “Проверить”

Text1.SetFocus              ‘установка фокуса на поле Text1

End Sub ‘конец процедуры

Private Sub Command2_Click() ‘процедура кнопки “Проверить”

Dim ocenka As Integer ‘объявление переменной с формируемой оценкой ocenka = 5                                              ‘начальное значение оценки 5 баллов

If (H(1,1)+H(1, 2)<>Val(Text1.Text)) Then ‘введенная сумма ошибочная

ocenka = ocenka ‑ 1                           ‘оценка уменьшается на один балл

Label9.Caption = H(1, 1) + H(1, 2)     ‘вывод правильной суммы

End If

If (H(2,1)‑H(2, 2)<>Val(Text2.Text)) Then ‘введенная разность ошибочная

ocenka = ocenka ‑ 1                            ‘оценка уменьшается на один балл

Label10.Caption = H(2, 1) ‑ H(2, 2)     ‘вывод правильной разности

End If

If (H(3, 1)*H(3, 2)<>Val(Text3.Text)) Then ‘произведение ошибочно

ocenka = ocenka ‑ 1                           ‘оценка уменьшается на один балл

Label11.Caption = H(3, 1) * H(3, 2)   ‘вывод правильного произведения

End If

If (H(4,1)/H(4, 2)<>Val(Text4.Text)) Then ‘частное от деления ошибочно

ocenka = ocenka ‑ 1                           ‘оценка уменьшается на один балл

Label12.Caption = H(4, 1) / H(4, 2)    ‘вывод правильного частного

End If

Label13.Caption = ocenka                                  ‘вывод оценки в метку Label13

Timer1.Interval = 0                                ‘отключение счетчика времени

End Sub ‘конец процедуры

Private Sub Command3_Click() ‘процедура кнопки “Выход ”

End                                                         ‘закончить выполнение программы

End Sub ‘конец процедуры

Private Sub Timer1_Timer() ‘процедура обработки интервала

‘уменьшение на одну секунду, оставшегося на ответ времени и его вывод

Label14.Caption= Label14.Caption ‑1

‘если время на ответ закончилось, то вызов обработчика кнопки “Проверить”

If Label14.Caption <= 0 Then Command2_Click

End Sub ‘конец процедуры

 


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.099 с.