Электронная библиотека » Евгений Матвеев » » онлайн чтение - страница 9


  • Текст добавлен: 16 октября 2020, 08:02


Автор книги: Евгений Матвеев


Жанр: Прочая образовательная литература, Наука и Образование


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 9 (всего у книги 18 страниц)

Шрифт:
- 100% +
9.8.2. События

Список может инициировать разные события мыши и клавиатуры, наиболее часто из которых используются Click (Щелчок) и DblClick (Двойной щелчок).

Новое для нас событие Scroll (Прокрутка) непрерывно генерируется в момент прокрутки списка, но оно применяется редко.

9.8.3. Методы

В процессе работы со списком важную роль играют специальные методы, позволяющие изменять его содержимое, добавляя и удаляя элементы списка:

AddItem (Добавить элемент). Добавляет новый элемент в конец списка, либо включает его в указанное место:


объект.AddItem текст [, индекс]


Clear (Очистить). Полностью удаляет все элементы списка:


объект.Clear


RemoveItem (Убрать элемент). Выборочно, по одному удаляет отдельные элементы списка:


объект.RemoveItem индекс


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

9.8.4. Пример программирования

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

Нарисуйте на форме два элемента управления ListBox (Список): List1 и List2.

В окне свойств введите несколько элементов списка в качестве значений свойства List (Список).

Прежде всего, создайте процедуры List1_Click и List2_Click, выполняющие перенос элементов из одного списка в другой:


Private Sub List1_Click ()

List2.AddItem List1.Text ‘ добавление элемента в List2

List1.RemoveItem List1.ListIndex ‘ удаление элемента из List1

End Sub


Private Sub List2_Click ()

List1.AddItem List2.Text ‘ добавление элемента в List1

List2.RemoveItem List2.ListIndex ‘ удаление элемента из List2

End Sub


В каждой из этих процедур сначала выделенный щелчком мыши элемент, хранящийся в свойстве Text (Текст), добавляется в другой список, а затем происходит удаление скопированного текущего элемента из исходного списка методом RemoveItem (Убрать элемент).

Также, введите текст процедуры, осуществляющей распечатку элементов списка List1 на поверхности формы:


Private Sub Form_Click ()

Cls ‘ очистка поверхности формы

For i = 0 To List1.ListCount – 1

Print List1.List (i) ‘ печать каждого элемента списка List1

Next

End Sub


Метод Cls (Очистить экран) очищает поверхность формы от предыдущего текста. После этого, в цикле происходит печать каждого элемента списка List1.

Переключитесь в режим выполнения и пощелкайте мышью по обоим спискам. Элементы будут перемещаться из одного списка в другой.

Затем щелкните на свободной от элементов управления поверхности формы для распечатки текущего содержимого первого списка.

9.9. ComboBox (Комбинированный список)

В Visual Basic существует и другая разновидность списков – ComboBox (Комбинированный список), который по своим функциональным возможностям, да и по внешнему виду тоже, напоминает комбинацию обычного списка и текстового поля (Рис.9.14).


Рис.9.14. Элемент управления

ComboBox (Комбинированный список)

9.9.1. Свойства

В отличие от обычного списка, комбинированный не позволяет размещать текст в несколько колонок, поэтому у него отсутствует свойство Columns (Колонки). Свойства Style (Тип) и Text (Текст), также, обладают своими особенностями:

Style (Тип). Определяет внешний вид комбинированного списка и режим его работы. Возможные значения:

• 0 – Dropdown Combo (Открывающийся комбинированный список) – открывающийся список с текстовым полем,

• 1 – Simple Combo (Простой комбинированный список) – простой список с текстовым полем,

• 2 – Dropdown List (Открывающийся список) – открывающийся список без возможности редактирования.

Text (Текст). Может содержать не только текст выбранного элемента, но и набранный вручную в поле ввода.

9.9.2. События

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

9.9.3. Методы

Те же самые, как и у элемента управления ListBox (Список).

9.9.4. Пример программирования

Чаще всего, он применяется в качестве обычного открывающегося списка.

Нарисуйте на форме комбинированный список Combo1.

Очистите его свойство Text (Текст), чтобы ничего лишнего не выводилось на экран во время работы.

Напишите процедуру обработки нажатий клавиш Combo1_KeyPress:


Private Sub Combo1_KeyPress (KeyAscii As Integer)

If KeyAscii = 13 Then ‘ проверка нажатия клавиши [Enter]

Combo1.AddItem Combo1.Text ‘ добавление текста в список

End If

End Sub


Запустите программу и проверьте ее работу. После ввода строки в поле ввода комбинированного списка и нажатия клавиши [Enter] она должна добавляться в список.

9.10. Horizontal Scroll Bar (Горизонтальная полоса прокрутки)

Полосы прокрутки присутствуют у многострочного текстового поля и всех разновидностей списков, но они могут быть и отдельными элементами управления. В данном разделе мы рассмотрим элемент управления HScrollBar (Горизонтальная полоса прокрутки) (Рис.9.15).


Рис.9.15. Элемент управления HScrollBar

(Горизонтальная полоса прокрутки)


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

9.10.1. Свойства

Наиболее важным для полосы прокрутки является свойство Value (Значение), которое содержит число, отражающее текущее положение ползунка. Свойства Min (Минимум) и Max (Максимум) определяют допустимые границы изменения Value (Значение). Все эти свойства имеют тип данных Integer (Целый), поэтому допустимые значения для них должны находиться в пределах от —32768 до 32767.

Горизонтальная полоса прокрутки обладает и другими специфическими свойствами, присущими только полосам прокрутки:

LargeChange (Большое изменение). Содержит число, которое прибавляется или вычитается при щелчке мышью внутри полосы прокрутки. определяет величину изменения свойства Value (Значение) при щелчке мышью внутри полосы прокрутки, От величины данного свойства зависит и внешний вид полосы прокрутки – длина ползунка.

SmallChange (Малое изменение). Определяет величину изменения свойства Value (Значение) при щелчке мышью на одной из концевых стрелок полосы прокрутки.

Для более глубокого понимания смысла свойств элемента управления HScrollBar (Горизонтальная полоса прокрутки), их правила использования следует проиллюстрировать. В данном случае, исходя из положения ползунка, значение свойства Value (Значение) равно Min (Минимум) (Рис.9.16).


Рис.9.16. Иллюстрация свойств объекта HScrollBar

(Горизонтальная полоса прокрутки)

9.10.2. События

Главные события горизонтальной полосы прокрутки:

Change (Изменение). Возникает после изменения позиции ползунка пользователем или программой.

Scroll (Прокрутка). Постоянно генерируется при перемещении ползунка любым способом.

9.10.3. Методы

Никакими особенными методами горизонтальная полоса прокрутки не обладает.

9.10.4. Пример программирования

Теперь проиллюстрируем на практике работу данного элемента управления, для чего выберите на панели элементов и нарисуйте на форме элемент HScrollBar (Горизонтальная полоса прокрутки).

Затем установите следующие значения свойств объекта HScroll1:

Max (Максимум) – 100,

Min (Минимум) – 0,

LargeChange (Большое изменение) – 10,

SmallChange (Малое изменение) – 1.

После чего откройте окно процедуры HScroll1_Change, дважды щелкните мышью на полосе прокрутки, и напишите строку, показывающую с помощью заголовка метки Label1 измененное значение свойства Value (Значение) полосы прокрутки HScroll1:


Label1.Caption = HScroll1.Value


Полный текст процедуры находится здесь:


Private Sub HScroll1_Change ()

Label1.Caption = HScroll1.Value

End Sub


Visual Basic остается прост, как всегда! Остается проверить работу программы. Попробуйте изменять положение ползунка полосы прокрутки различными способами и понаблюдайте за меткой, где будет отображаться текущее значение свойства Value (Значение) объекта HScroll1.

9.11. Вертикальная полоса прокрутки (Vertical Scroll Bar)

Другой элемент управления – VScrollBar (Вертикальная полоса прокрутки) – практически идентичен горизонтальной полосе прокрутки.

Они работают совершенно одинаково и отличаются друг от друга лишь своим геометрическим расположением – горизонтальным и вертикальным (Рис.9.17).


Рис.9.17. Элемент управления VScrollBar

(Вертикальная полоса прокрутки)

9.11.1. Свойства

Объект VScrollBar (Вертикальная полоса прокрутки) обладает точно таким же набором свойств, как и рассмотренный ранее HScrollBar (Горизонтальная полоса прокрутки).

Единственное небольшое различие заключается в использовании свойств Height (Высота) и Width (Ширина), которые.

9.11.2. События

Такие же, как у горизонтальной полосы прокрутки.

9.11.3. Методы

Аналогично предыдущему.

9.11.4. Пример программирования

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

9.12. Timer (Таймер)

Следующий элемент управления Timer (Таймер) совсем не похож на все предыдущие. Он позволяет запускать или завершать процессы в определенные моменты времени. Таймер виден на форме только на этапе проектирования (Рис.9.18).


Рис.9.18. Элемент управления Timer (Таймер)


В период выполнения таймер невидим. Единственным результатом его работы служит генерация через определенные промежутки времени события Timer (Таймер). Чаще всего, таймер используется для создания динамических эффектов, мигания, периодического обновления изображений, в аркадных компьютерных играх и анимации.

9.12.1. Свойства

Данный объект обладает крайне скудным набором свойств. Наибольший интерес для программиста представляют следующие его свойства:

Enabled (Доступность). Разрешает или запрещает работу таймера:

• True (Истина) – событие вызывается,

• False (Ложь) – событие не вызывается.

Interval (Интервал). Содержит период времени в миллисекундах между вызовами события Timer (Таймер). Для подсчета числа событий в секунду следует воспользоваться формулой 1000 / н

9.12.2. События

Единственное событие данного элемента управления – Timer (Таймер). Данное событие вызывается с периодичность, которая определена текущим значением свойства Interval (Интервал).


9.12.3. Методы

Не предусмотрены.

9.12.4. Пример программирования

Попробуем использовать таймер для вывода текущего системного времени на поверхность формы.

Нарисуйте в любом месте формы элемент управления Timer (Таймер).

Установите у него свойство Interval (Интервал) в размере 500 миллисекунд.

Откройте окно событийной процедуры Timer1_Timer и впишите код:


Private Sub Timer1_Timer ()

Cls ‘ очистка поверхности формы

Print Time ‘ вывод текущего времени

End Sub


В первой строке этой процедуре используется метод формы Cls (Очистить экран) для стирания предыдущего значения времени. Другой метод Print (Напечатать), занимающийся выводом текущего значения времени на экран, применяет функцию получения текущего времени Time.

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

9.13. Drive ListBox (Список дисков)

Следующие три элемента управления представляют собой списки, специально предназначенные для работы с файловой системой:

DriveListBox (Список дисков),

DirListBox (Список папок),

FileListBox (Список файлов).

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



Элемент управления DriveListBox (Список дисков) внешне очень похож на ComboBox (Комбинированный список) и содержит перечень дисковых устройств, доступных на данном компьютере (Рис.9.19).


Рис.9.19. Элемент управления

Drive ListBox (Список дисков)

9.13.1. Свойства

Основное свойство Drive (Диск) объекта DriveListBox (Список дисков) хранит имя выбранного диска, например «C:». Оно доступно только во время выполнения. Возможен выбор диска пользователем или установка его программным путем.

Данный элемент управления, наряду со списками папок и файлов, обладает рядом свойств, типичных и для обычных списков:

List (Список). Массив, состоящий из элементов списка, в данном случае – дисковых устройств. Доступен только для чтения в период выполнения.

ListCount (Длина списка). Возвращает количество элементов списка. Доступно только для чтения и только в период выполнения.

ListIndex (Указатель текущего элемента списка). Содержит индекс элемента списка – имени дискового устройства, который был выделен последним. Доступно только во время выполнения.

9.13.2. События

Наиболее полезное событие Change (Изменение) вызывается при выборе диска пользователем или программой. Другие события элемента управления DriveListBox (Список дисков):

DragDrop (Перетаскивание и отпускание). Возникает, когда пользователь отпускает перетаскиваемый мышью объект.

DragOver (Перетаскивание поверх). Возникает, когда пользователь перетаскивает мышью объект над элементом управления.

GotFocus (Получение фокуса). Происходит при получении фокуса ввода.

KeyDown (Клавиша вниз). Возникает, если пользователь нажимает клавишу.

KeyPress (Нажатие клавиши). Возникает, если пользователь нажимает, а затем отпускает клавишу или комбинацию клавиш, соответствующих коду символа ANSI.

KeyUp (Клавиша вверх). Возникает, если пользователь отпускает клавишу.

LostFocus (Потеря фокуса). Происходит при потере фокуса ввода.

OLECompleteDrag (Завершение перетаскивания OLE). Возникает в объекте-источнике, когда операция ручного или автоматического перетаскивания была завершена или прервана.

OLEDragDrop (Перетаскивание и отпускание OLE). Возникает в объекте-приемнике при завершении перетаскивания в ручном режиме.

OLEDragOver (Перетаскивание поверх OLE). Возникает в объекте-приемнике во время перетаскивания над ним объекта-источника в ручном режиме.

OLEGiveFeedback (Получение обратной связи OLE). Возникает в объекте-источнике, когда указатель мыши требует своего изменения.

OLESetData (Установка данных OLE). Возникает в объекте-источнике, когда объект-приемник запрашивает данные, не предоставленные во время события OLEStartDrag (Начало перетаскивания OLE).

OLEStartDrag (Начало перетаскивания OLE). Возникает в объекте-источнике после инициирования операции ручного или автоматического перетаскивания.

Scroll (Прокрутка). Непрерывно генерируется в момент прокрутки списка.

Validate (Проверка). Возникает перед событием LostFocus (Потеря фокуса).

9.13.3. Методы

После изменения количества дисков в системе следует использовать метод Refresh (Обновить), приводящий элементы списка DriveListBox (Список дисков) к текущему состоянию компьютерной системы:


объект.Refresh


Остальные методы объекта DriveListBox (Список дисков) уже встречались ранее:

Drag (Перетащить),

Move (Переместить),

OLEDrag (Перетащить OLE),

Refresh (Обновить),

SetFocus (Установить фокус),

ShowWhatsThis (Показать Что это?),

ZOrder (Z-порядок).

9.13.4. Пример программирования

Элемент управления DriveListBox (Список дисков) почти не используется в программах одиночно, поэтому его программирование будет рассматриваться совместно с DirListBox (Список папок).

9.14. DirListBox (Список папок)

Элемент DirListBox (Список папок) отображает структуру папок выбранного диска и предназначен для выбора пользователем нужного каталога, который будет затем использован в программе.

Его внешний вид должен быть хорошо знаком пользователям большинства приложений, работающих в среде Windows (Рис.9.20).


Рис.9.20. Элемент управления

DirListBox (Список папок)

9.14.1. Свойства

Многие свойства элемента управления DirListBox (Список папок) совпадают со свойствами DriveListBox (Список дисков), но есть и некоторые отличия:

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

TopIndex (Указатель верхнего). Указатель на первый подкаталог внутри выбранной папки. Если она не содержит подкаталогов, то данное свойство равно пустой строке.

9.14.2. События

Чаще всего, при программировании DirListBox (Список папок) используется событие Change (Изменение), генерируемое при выборе любой папки пользователем или программой.

Другие события, также, совпадают с событиями объекта DriveListBox (Список дисков), кроме следующих:

MouseDown (Кнопка вниз). Возникает, когда пользователь нажимает на кнопку мыши.

MouseMove (Перемещение указателя). Возникает при перемещении указателя мыши пользователем.

MouseUp (Кнопка вверх). Возникает, когда пользователь отпускает на кнопку мыши.

9.14.3. Методы

Совершенно аналогичны тем, какие имеются у DriveListBox (Список дисков).

9.13.4. Пример программирования

Самым нужным в программировании DirListBox (Список папок) является его синхронизация с элементом управления DriveListBox (Список дисков), что мы сейчас и сделаем.

Сначала выберите на панели элементов и нарисуйте на форме элементы управления DriveListBox (Список дисков) и DirListBox (Список папок).

Затем напишите процедуру обработки события, вызываемого при выборе пользователем текущего диска в списке – Drive1_Change:


Private Sub Drive1_Change ()

Dir1.Path = Drive1.Drive

End Sub


Как видите, синхронизация производится всего одной строкой кода, где свойство Drive (Диск) объекта DriveListBox (Список дисков) присваивается свойству Path (Путь) элемента управления DirListBox (Список папок).

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

9.15. File ListBox (Список файлов)

Последний список, из трёх рассматриваемых предназначенный для работы с файловой системой, это – FileListBox (Список файлов).

Он отображает список файлов в выбранной папке, давая возможность пользователю выбирать один или сразу несколько файлов (Рис.9.21).


Рис.9.21. Элемент управления

FileListBox (Список файлов)

9.15.1. Свойства

У элемента управления FileListBox (Список файлов) имеется обширный перечень свойств, многие из которых связаны с возможностью установки режима фильтрации списка, в котором будут показаны файлы только с заданными атрибутами:

Archive (Архивный). Управляет отображением файлов с установленным атрибутом Archive (Архивный):

• True (Истина) – файлы отображаются,

• False (Ложь) – файлы не отображаются.

Hidden (Скрытый). Управляет отображением файлов с установленным атрибутом Hidden (Скрытый):

• True (Истина) – файлы отображаются,

• False (Ложь) – файлы не отображаются.

Normal (Обычный). Управляет отображением файлов со всеми сброшенными атрибутами:

• True (Истина) – файлы отображаются,

• False (Ложь) – файлы не отображаются.

ReadOnly (Только чтение). Управляет отображением файлов с установленным атрибутом ReadOnly (Только чтение):

• True (Истина) – файлы отображаются,

• False (Ложь) – файлы не отображаются.

System (Системный). Управляет отображением файлов с установленным атрибутом System (Системный):

• True (Истина) – файлы отображаются,

• False (Ложь) – файлы не отображаются.

FileName (Имя файла). Содержит имя последнего выбранного файла.

MultiSelect (Множественное выделение). Устанавливает режим одновременного выделения нескольких элементов списка. Доступно для изменения только в режиме проектирования:

• 0 – None (Нет) – возможно выделение только одного файла,

• 1 – Simple (Простое) – щелчком мыши можно выделить любое количество файлов,

• 2 – Extended (Расширенное) – при выделении только мышью аналогично п. 0, если удерживать клавишу [Ctrl] – аналогично п. 1, а при нажатой клавише [Shift] – происходит выделение нескольких файлов от первого до второго щелчка мыши.

Path (Путь). Содержит полный путь к текущей выбранной папке.

Pattern (Шаблон). Содержит строку с маской файлов, которые будут отображаться в списке. Можно использовать символы подстановки: «?» и « *», а также вводить несколько шаблонов через точку с запятой «;», например: «*.txt»; «data?.bin».

Selected (Выделенные). Массив, указывающий на выделенные элементы списка. Доступно только во время выполнения. Для каждого элемента массива хранится одно из значений:

• True (Истина) – элемент выделен,

• False (Ложь) – элемент не выделен.

TopIndex (Указатель верхнего). Содержит указатель на первое имя файла в списке.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации