[pic] Рис. 2.25 При щелчке по кнопке “Добавить элемент” содержимое текстовой строки добавляется в список с помощью метода Additem. Список обладает свойством автосортировки (добавление происходит в соответствии с упорядоченностью по алфавиту). Происходит очищение текстовой строки и активизация кнопок “Удалить элемент” и “Очистить список”. Это обеспечивается следующими операторами: |Процедура |Комментарии | |Sub CoiTimand4Click() |Добавление нового имени| |Listl.AddItem |в список Очистка | |Text2.Text Text2.Text |текстовой строки. | |= “” Command [.Enabled|Активизация кнопок | |= True Command3. |“Удалить элемент” и | |Enabled = True End Sub|“Очистить список” |
Для фиксации названия фирмы или удаления его из списка требуется предварительно щелкнуть мышью по элементу списка. При обработке этого события проверяется наличие элементов в списке и активизируются кнопки “Зафиксировать”, “Удалить элемент” и “Очистить список”. Это обеспечивается следующими операторами: |Процедура |Комментарии | |Sub Listi Click() If |Свойство Listlndex | |List 1. Listi ndex >= 0|равно номеру | |Then |выделенного элемента. | |Command3.Enabled = True|Если ни один элемент не| |Command6. Enabled = |выделен, то его | |True End If End Sub |значение - 0 | | |Активизация кнопки | | |удаления элемента и | | |фиксации элемента |
В результате обработки события “щелчок мыши” по элементу списка форма примет вид на рис. 2.26. [pic] Рис. 2.26 При щелчке по кнопке “Удалить название” удаляется текущий выбранный элемент из списка, деактивируется кнопка удаления списка и, при условии отсутствия других элементов в списке, деактивируется кнопка “Очистить список”. Проверка на пус тоту списка осуществляется с помощью свойства ListCount, значение которого равно числу элементов в списке. Это обеспечивается следующими операторами: |Процедура |Комментарии | |Private Sub Command3 |Проверка на выбор | |Clic() If Listi. Listi |элемента Удаление | |ndex >= 0 Then List 1. |элемента из списка | |Remove Item List 1. |Деактивация кнопки | |List! ndex |удаления элемента | |Command3.Enabled = |списка, так как нет | |False End If |выделенных элементов в | |If Listi. ListCount = 0|списке Проверка списка | |Then Command [.Enabled |на пустоту. Если список| |= False End If End Sub |пуст, то деактивация | | |кнопки очистки списка |
При щелчке по кнопке “Зафиксировать” выбранное название фирмы помещается в текстовое окно “Описание модели”, деактивизируется рамка с названием “Список фирм-дистрибьюторов” и все управляющие элементы, лежащие внутри рамки. Процедура обработки события щелчка по кнопке “Зафиксировать” имеет следующий вид: [pic] В результате выполнения этой процедуры форма примет вид, показанный на рис. 2.27. [pic] Рис. 2.27 На форме остались активными только два управляющих элемента: командная кнопка “Конец” и тестовое окно “Описание модели”. В текстовое окно можно добавлять собственный текст и редактировать имеющийся. При нажатии на кнопку “Конец” работа программы завершается. Это обеспечивается операторами: |Процедура |Комментарии | |Sub Command2 Click() |End - оператор завершения| |End End Sub |программы |
Тексты всех процедур обработки событий примера: Private Sub Check2_Click() If Check2.Value = 1 Then Textl.Text = Textl.Text + Check2.Caption + Chr$(13) + Chr$(10) Check2.Enabled = False End If End Sub Private Sub Check3_Cli.ck() If Check3.Value = 0 Then Listi.Columns = 1 Else Listi.Columns = 2 End If End Sub Private Sub Check4_Click () If Check4.Value = 1 Then Check4.Enabled = False Textl.Text = Textl.Text + Check4.Caption + Chr$(13) + Chr$(10) End If End Sub Private Sub Combol_Click() Combol.Enabled = False Textl.Text = Textl.Text + Combol.Text + Chr$(13) + Chr$(10) Labell.Enabled = False Combo2.Enabled = True Label2.Enabled = True End Sub Private Sub Combo2_Click() Combo2.Enabled = False Label2.Enabled = False Private Sub Cornmand4_Click () Listl.AddItem Text2.Text Text2.Text = “” Commandl.Enabled = True End Sub • Private Sub Command2_Click() End End Sub Private Sub Command5_Click() Check2.Enabled = False Check4.Enabled = False Frame2.Enabled = False HScroill.Enabled = False Label4.Enabled = False Label5.Enabled = False Label6.Enabled = False Label7.Enabled = False Lab.el8 .Enabled = False Commands.Enabled = False Textl.Text = Textl.Text + Label5.Caption + “Л.С” + Chr$(13) + Chr$(10) Framel.Enabled = True Listi.Enabled = True Text2.Enabled = True Command4.Enabled = True Check3.Enabled = True Commandl.Enabled = True End Sub Private Sub Command6_Click() ‘If Listl.ListIndex >= 0 Then Textl.Text = Textl.Text + Listl.Text + Chr$(13) + Chr$(10) Framel.Enabled = False Listi.Enabled = False Text2.Enabled = False Command4.Enabled = False Check3.Enabled = False Commandl.Enabled = False Command6.Enabled = False Commands.Enabled = False End If End Sub Textl.Text = Textl.Text + Combo2.Text + Chr$(13) + Chr$(10) If Combo2.Text .= “Красный” Then LabelS.BackColor = &HFF& Elself Combo2.Text = “Белый” Then LabelS.BackColor = &HFFFFFF Elself Combo2.Text = “черный” Then LabelS.BackColor = &HO Elself Combo2.Text = “Синий” Then LabelS.BackColor = &HFFOOOO Elself Combo2.Text = “Зеленый” Then LabelS.BackColor = &HCOOO& End If Combo3.Enabled = True Label3.Enabled = True End Sub Private Sub Combo3_Click() Combo3.Enabled = False Label3.Enabled = False Textl.Text = Textl.Text + Combo3.Text + Chr$(13) + Chr$(10) Frame4.Enabled = True ‘ “ Optioni.Enabled = True Option2.Enabled = True Option3.Enabled = True End Sub Private Sub Commandl Click () Listi.Clear ~ Commandl.Enabled = False End Sub • Private Sub Command3_Click() If Listl.ListIndex >= 0 Then Listi.Removeltem Listl.ListIndex Command3.Enabled = False End If If Listi.ListCount = 0 Then Commandl.Enabled = False End If End Sub Private Sub Form_Load() Label4.Caption = Str$(HScrolll.Value * 735.499 / 1000) Label5.Caption = Str$(HScrolll.Value) Combol.Addltem “Мерседес” Combol.Addltem “Ауди” Combol.Addltem “Фольксваген” Combol.Addltem “Шкода” Combol.Addltem “Рено” Combol.Addltem “Пежо” Combol.Addltem “Запорожец” Combo2.Addltem “Красный” Combo2.Addltem “Бельм” Combo2.Addltem “черный” Combo2.Addltem “Синий” Combo2.Addltem “Зеленый” Combo3.Addltem “Люкс” СотЬоЗ.Addltem “Стандарт” Combo3.Addltem “Минимум” Listl.Addltem “MusaMotors” Listi.Addltem “Savva” Listl.Addltem “A3P” Listl.Addltem “ЛогоВАЗ” Listl.Addltem “ЛадаИнжениринг” End Sub Private Sub HScrolll_Change() Label4.Caption = Str$(HScrolll.Value * 735.499 / 1000) Labels.Caption = Str$(HScrolll.Value) End Sub Private Sub Listl_Click() If Listl.Listlndex >= 0 Then Command3.Enabled = True Command6.Enabled = True End If End Sub Private Sub Optionl_Click() Frame4.Enabled = False Optioni.Enabled = False Option2.Enabled = False Option3.Enabled = False Textl.Text = Textl.Text + Optioni.Caption Chr$(13) + Chr$(10) Check2.Enabled = True Check4.Enabled = True Frame2.Enabled = True HScrolll.Enabled = True Label4.Enabled = True Labels.Enabled = True Label6.Enabled = True Label7.Enabled = True Labei8.Enabled = True Commands.Enabled = True End Sub Private Sub Option2_Click() Frame4.Enabled = False Optionl. Enabled = False Option2.Enabled = False Option3.Enabled = False Textl.Text = Textl.Text + Option2.Caption + Chr$(13) + Chr$ (10) Check2.Enabled = True Check4.Enabled = True Frame2.Enabled = True HScrolll.Enabled = True Label4.Enabled = True Labels.Enabled = True Label6.Enabled = True Label7.Enabled = True Labels.Enabled = True Commands.Enabled = True End Sub Private Sub Option3_Click() Frame4.Enabled = False Optioni.Enabled = False Option2.Enabled = False Option3.Enabled = False Textl.Text = Textl.Text + Option3.Caption > Chr$(13) + Chr$ (10) Check2.Enabled = True Check4.Enabled = True Frame2.Enabled = True HScrolll.Enabled = True Label4.Enabled = True Ldbel5. Ei-icioled = True Ldnei6.EnDied = True LdDpl7 . L.Jt,ied = Tr.Je Lctbel8 . Er.dbied = True CoiTimand . Ј.ndbled = Tru Ei-ici Sub 2.13. МЕНЮ ПОЛЬЗОВАТЕЛЯ Важным элементом GUI является стандартное меню пользователя. Visual Basic имеет специальное средство для создания меню пользоваюлеи приложениями - Menu Editor (Проектировщик меню). Это срелс-жо нозволяег построить меню соответственно общим принципам рассмо1ренного событпиного управления для форм и элементов управления. Меню пользоваге-ля создается выстраиванием элементов меню в соответствии с необходимой их иерархией с помощью Проектировщика меню. Для вызова проектировщика меню нужно вызвать команду Menu Editor... из меню Tools или щелкнуть кнопку Menu Editor на панели инструментов Главного меню. При этом появится окно Menu Editor (рис.2.28). элемешы которою имеюг следующее назначение:
. Caption примеияегся для ввода названии элементов списка меню, используемых в диадою (например, Фаил, Edit и т.н.): для создания разделительной черш (разделяет функциональные группы пунктов меню) вместо имени вводтся символ “-“;
. Name иснользуегся для ввода имен элементов списка меню, используемых при написании нро1раммы (аналогично свойству Name для форм и элементов управления);
. Index - индекс элемеша списка диало1а в массиве (при использовании массива элемента списка диалога);
. Shortcut - раскрывающийся список комбинаций клавиш, из которого можно выбрагь комбинацию “горячих” клавиш эле-менюв списка меню;
. Windows List - флажок, при установке которого меню содержит список (л крытых окон в многооконном приложении (MDI-приложения):
. HelpConiextID - индекс для поиска в HelpFile;
. Checked - флажок, при установке когорого помечается пункт выбранною меню; [pic] Рис 2 2S
. Enabled - флажок, при установке которого пункт меню доступен;
. Visible - флажок, при усгановке которого пункт меню виден;
. кнопки изменения уровня пунктов меню; [pic]
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14