Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
2022-10-29 | 41 |
5.00
из
|
Заказать работу |
|
|
Переключатели (радиокнопки) позволяют выбрать один вариант из нескольких, расположенных внутри рамки или объекта 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. Вид калькулятора
Присвоим значения свойствам 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 (раскрывающее) vbComboSimple (простое) и 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). Кнопкой Выход завершается работа программы.
Приведем текст процедур обработки событий для данной задачи
‘Стандартный раздел (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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!