Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

6.5. Рамки (Frame)

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

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

Переключатели (радиокнопки) позволяют выбрать один вариант из нескольких, расположенных внутри рамки или объекта 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

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

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

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

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

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

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

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

6.8. Списки (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 operAs 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)

EndSub‘конец процедуры

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

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

End Sub

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

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

End Sub