русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массивы элементов управления


Дата добавления: 2015-08-31; просмотров: 1100; Нарушение авторских прав


Элементами массивов могут быть элементы управления, располагаемые на форме. Если вы часто копируете элементы управления при разработке форм, то, наверное, не раз перед вставкой скопированного элемента на форму сталкивались с сообщением, «любезно» предоставляемым VB-редактором и похожим на то, которое вы видите на рис. 10.2.

Рис. 10.2

При вставке ранее скопированного в Clipboard элемента управления, скорее всего, вы получите такое сообщение-вопрос

Таким образом Visual Basic предупреждает вас о том, что элемент управления с именем Option1 уже имеется на форме, и предлагает создать массив элементов типа Option с именем Option1. Вы можете даже никогда не столкнуться с таким сообщением, если вам не лень обращаться за новыми элементами формы к панели ToolBox. Но, с другой стороны, если вы действительно хотите создать массив элементов управления одного тира, то использование этого диалогового окна — один из способов построить такой массив.

Если вашим ответом на VB-вопрос будет «Yes», то Visual Basic создаст массив элементов управления с именем скопированного в Clipboard элемента. Первым (с индексом 0) элементом массива будет скопированный элемент управления, вторым (с индексом 1) — вставляемый элемент. Далее вы можете продолжить операцию вставки и разместить на форме несколько однотипных элементов массива.

Работать с массивом элементов управления также легко, как и с обычным массивом. Только в данном случае вы будете иметь дело с массивом объектов, которые обладают свойствами, методами и событиями.

В качестве примера (в общем-то, непростого) рассмотрим следующую форму (в режиме разработки), на которой расположены массивы элементов управления (рис. 10.3).

Рис. 10.3

Форма в режиме разработки, на которой расположены массивы элементов управления

Как обычно, приведем таблицу со свойствами элементов управления, но не со всеми (их слишком много), а с теми, которые будут использоваться в рассматриваемом далее коде.



Тип элемента Свойство Значение Примечание
Frame Name Frame1 Содержит элемент List1
  Caption Склад  
ListBox Name List1 Список складов
Frame Name Frame2 Содержит три массива элементов управления
  Caption Типы накладных  
OptionButton Name Option1(0)  
  Caption Продажа/Возврат  
OptionButton Name Option1(1)  
  Caption Прием:  
OptionButton Name Option1(2)  
  Caption Предача:  
OptionButton Name Option1(3)  
  Caption Регистрация  
CheckBox Name Check1(0)  
  Caption со складов  
CheckBox Name Check1(1)  
  Caption из оптовых магазинов  
CheckBox Name Check1(2)  
  Caption из рознич. магазинов  
CheckBox Name Check2(0)  
  Caption на склады  
CheckBox Name Check2(1)  
  Caption в оптовые магазины  
CheckBox Name Check2(2)  
  Caption в рознич. магазины  
CommandButton Name OK  
  Caption OK  
ListBox Name List2 Список групп товаро
ListBox Name List4 Список контрагентов

Обратите внимание на наличие в этой таблице массивов Option1(),Check1() и Check2(). В листинге 10.4 приведен код процедуры OKED, которая управляет состоянием (свойством Enabled) кнопки ОК в зависимости от состояния других элементов управления. Эта процедура вызывается в коде событийных процедур элементов управления, которые должны влиять на возможность работы формы, в частности, кнопки ОК.

 

 

истинг 10.4. Тестирование функции inervals

1 Private Sub OKED()

2 'управление состоянием кнопки OK

3 Dim i As Integer

5 'какая кнопка выбрана в Option1

6 For i = 0 To 3

7 If Option1.Item(i) Then

8 Exit For

9 End If

10 Next

12 Select Case i

14 Case Is = 0, 3

15 If FunSelectList(List1) And FunSelectList(List2) Then

16 OK.Enabled = True

17 Else

18 OK.Enabled = False

19 End If

21 Case Is = 1, 2

22 If FunSelectList(List1) And FunSelectList(List2) _

23 And FunSelectList(List4) Then

24 OK.Enabled = True

25 Else

26 OK.Enabled = False

27 End If

29 End Select

31 End Sub

В строках 6–10 определяется номер выбранной кнопки массива Option1(). Номер кнопки сохраняется в переменной i. В строках 12–29 посредством структуры Select Case происходит анализ переменной i и выполняются соответствующие операторы, в том числе и управляющие значением свойства Enabled кнопки OK.

Результат функции FunSelectList (строки 15, 22–23) также учитывается при определении значения свойства Enabled кнопки OK. Функция FunSelectList содержит следующий код и уже была описана в главе 8.

Function FunSelectList(ObjList As Object) As Boolean

' проверка наличия выделенных элементов в списке List

Dim i As Integer

FunSelectList = False

For i = 0 To ObjList.ListCount - 1

If ObjList.Selected(i) Then

FunSelectList = True

Exit For

End If

Next

End Function

Событийные процедуры элементов Check1(), Check2() и List1 вызывают процедуру OKED:

Private Sub Check1_Click(Index As Integer)

Update_List4 (1)

Call OKED

End Sub

 

Private Sub Check2_Click(Index As Integer)

Update_List4 (2)

Call OKED

End Sub

 

Private Sub List1_Click()

Call OKED

End Sub

Обратите внимание на синтаксис заголовков событийных процедур для объектов, содержащихся в массивах: для всего массива используется только одна процедура, с параметром — индексом элемента.



<== предыдущая лекция | следующая лекция ==>
Использование массивов | Определенный интеграл.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.128 сек.