Список (ListBox) и окно со списком (ComboBox)

Рамка

Рамка является средством объединения управляющих объектов в некоторые группы. Такие группы объектов обводятся рамкой, которая может иметь надпись (например Caption на рис. 2.12,б). Основные свойства рамки Name, Caption, Enabled, Font, HelpContextID, Visible по смыслу совпадают с одноименными свойствами объекта Форма. Если сделать рамку невидимой, то с формы исчезнут и все объекты, находящиеся в группе.

В практике создания интерфейса нередко возникает необходимость предоставить пользователю выбрать что-либо из готового списка, а также дополнить имеющийся список своими данными. Для этих целей и служат объекты "Список" и "Окно со списком".

Первый объект показывает окно со списком, обеспечивает выбор из списка, но не позволяет вводить новые элементы списка. Второй объект в зависимости от свойства "Стиль" позволяет получить однострочное текстовое окно (список "пролистывается" в этом окне), или текстовое окно с кнопкой вызова списка. В случае необходимости можно обеспечить возможность данных в текстовое окно. Внешний вид объектов показан на рис. 2.13, основные свойства и методы приведены в табл. 2.7.

 

Рис. 2.13. Текстовые окна со списком и списки

 

Спускаемая комби позволяет выбирать в текстовое окно элемент списка или вводить свои данные. Простая комби не предусматривает развертывание окна со списком, но позволяет прокручивать список клавишами Up Arrow и Down Arrow . Возможно также ввести данные в текстовое окно. Спускаемый список похож на спускаемую комби, но не позволяет вводить данные с клавиатуры. Эти три разновидности объекта ComboBox экономят площадь окна.

Объект "Список" (ListBox, рис. 2.13) не экономит место в окне и показывает список в развернутом виде. Он имеет две модификации – "простой список" и "блок проверки", задаваемые свойством Style. Первая модификация является обычным списком, вторая позволяет "включать" и "отключать" элементы списка.


Таблица 2.7

Основные свойства и методы объектов "Список (ListBox)", "Окно со списком (ComboBox)"

Наименование Назначение Наличие в объекте
    ComBox ListBox
Свойства
Имя Имя объекта в программе + +
Columns Число колонок в списке - +
Enabled Способность реагировать на события + +
Font Шрифт надписи + +
HelpContextID Номер параграфа help-файла + +
ItemData Числа, ставящиеся в соответствие элементами списка + +
List Перечень элементов списка + +
ListCount Число элементов в списке + +
ListIndex Номер текущего выделенного элемента + +
MultySelect Возможность выделения нескольких элементов списка - +
Selected Фиксация выделения элементов - +
Sorted Включение сортировки элементов + +
Text Текст в окне со списком + -
Visible Видимость объекта + +
Методы объектов
<имя>.AddItem Добавление элемента в список + +
<имя>.RemoveItem Удаление элемента из списка + +
<имя>.KeyPress Фиксация нажатия символьных клавишей, а также Enter и т.д. + +
ComBox - окно со списком, ListBox - список, <имя> - имя объекта

Свойства List, ItemData и Selected являются массивами. В первый массив записываются названия элементов списка, во второй – произвольные числа, поставленные программистом в соответствие элементам списка. В третьем – фиксируются состояния элементов (выбран/не выбран). Если свойство MultySelect имеет значение False, то номер выделенного элемента совпадает со значением свойства ListIndex. Счет элементов начинается с нуля.

Метод KeyPress используется для фиксации момента окончания ввода данных в окно со списком. Сигналом окончания может быть нажатие клавиши Enter, Tab, Up Arrow, Down Arrow и т.д. Если предполагается добавить в список новый элемент, то используют метод AddItem <название элемента списка>,<номер элемента в списке> и оператор ItemData(<номер элемента в списке>) = <число>. Для удаления элемента из списка используют метод RemoveItem.

2.3.9. Окно выбора устройства (DriveListBox),
список каталогов (DirListBox),
список файлов (FileListBox),
объект Common Dialog Control

Объекты предназначены для выбора дисков, каталогов и файлов. По существу, эти объекты являются списками, дополненными средствами автоматического заполнения списков дисков, каталогов и файлов. Внешний вид этих объектов показан на рис. 2.14, важнейшие свойства и методы перечислены в табл. 2.8.

 

а) б) в)

Рис. 2.14. Окно выбора диска (а), список каталогов (б) и список файлов (в)

 

При запуске программы в свойство Drive и Path записываются текущий диск и текущий путь. Если они должны быть другими, то эти свойства можно переопределить. Номер выбранного элемента списка попадает в свойство ListIndex. Выбранный элемент списка может быть определен оператором:

<имя переменной>=<имя объекта>.List(<имя объекта>.ListIndex).

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

<имя переменной> = Left(<имя переменной>,2).

Значения свойств Drive, Path и FileName обновляются при каждом выборе из списков объектов DriveListBox, DirListBox и FileListBox соответственно. Этот выбор фиксируется в обработчиках событий Change для списков дисков и каталогов и в обработчике события Click для списка файлов.

Три описанных объекта позволяют создать достаточно гибкую систему работы с дисками, каталогами и файлами. Еще больше удобств создает стандартный объект Microsoft Common Dialog Control, поставляемый как расширение системы. Для настройки объекта используется окно настройки (рис. 2.15). В этом окне можно настроить все типы окон, получаемых с помощью объекта. Вид окон показан на рис. 2.16 - 2.18, основные свойства и методы приведены в табл. 2.9.

 


Таблица 2.8

Основные свойства и методы объектов DriveListBox, DirListBox, FileListBox

Наименование Назначение Наличие в объекте
    DrLB DiLB FLB
Свойства
Имя Имя объекта в программе + + +
Drive Имя диска + - -
FileName Имя файла - - +
HelpContextID Номер параграфа help-файла + + +
List Перечень элементов списка + + +
ListCount Число элементов в списке + + +
ListIndex Номер текущего выделенного элемента + + +
Path Путь - + +
Visible Видимость объекта. + + +
Методы
Change Фиксация выбора диска или каталога + + +
Click Фиксация выбора файла + + +
DrLB - окно выбора диска, DiLB - список каталогов, FLB - список файлов

Объект CommonDialog, установленный на форме, при работе программы на экране отсутствует. Для его появления необходимо в одном из обработчиков событий (обычно связанного с кнопкой CommandButton) поставить вызов одного из методов ShowOpen, ShowSave, ShowPrinter.

Назначение свойств и методов видно из табл. 2.9. Исключение составляет свойство Filter, которое ограничивает список файлов в окне объекта (рис. 2.16, 2.17) и имеет формат записи:

 

<описание 1>|< маска 1>|< описание 2>|< маска 2> …,

например, все файлы (*.*)|*.*| файлы Word (*.doc)|*.doc|.

 

Рис. 2.15. Окно настройки свойств CommonDialog

Рис. 2.16. Окно открытия файла

Рис. 2.17. Окно сохранения файла

 

Рис. 2.18. Окно печати файла


Таблица 2.9

Основные свойства и методы объекта Common Dialog

Наименование Назначение
Свойства
Имя Имя регистрации объекта в программе
Custom Вызов карты настройки
DefaultExt Тип файла по умолчанию, добавляется при сохранении файла к его имени
DialogTitle Заголовок окна
FileName Имя и путь к файлу
FileTitle Имя файла без пути
Filter Строка, описывающая маски имен файлов
FilterIndex Номер маски, которая будет показана в окне Тип файла
Copies FromPage ToPage Orientation Число печатаемых копий Первая страница печати Последняя страница печати Ориентация бумаги
InitDir Начальный путь к каталогу для открытия файла или его сохранения и печати.
Методы
ShowOpen Показать окно открытия файла
ShowSave Показать окно сохранения файла
ShowPrinter Показать окно печати файла

 

 

2.3.10. Объекты "Горизонтальная полоса прокрутки"
и "Вертикальная полоса прокрутки
(Horizontal Scroll Bar, Vertical Scroll Bar)

Полосы прокрутки встроены в объекты, которые имеют свойство List, а также существуют самостоятельно. Внешний вид этих объектов показан на рис. 2.19, основные свойства и методы приведены в табл. 2.10. Они применяются в случае необходимости показать в окне объект, который имеет

Рис. 2.19. Полосы прокрутки размер больше, чем окно просмотра. В этом случае полосы прокрутки следует рассматривать как некоторые оси координат, а их указатели – как индикаторы положения окна просмотра на площади, занимаемой объектом. Полосы прокрутки снабжены концевыми кнопками управления и указателем.

 


Таблица 2.10

Основные свойства и методы полос прокрутки

Наименование Назначение
Свойства
LargeChange Шаг изменения Value при щелчке по полосе прокрутки
SmallChange Шаг изменения Value при щелчке по кнопке полосы прокрутки
Value Значение, характеризующее положение указателя
Max Максимальное значение свойства Value, соответствует положению указателя в конце полосы прокрутки (не более 32767)
Min Максимальное значение свойства Value, соответствует положению указателя в начале полосы прокрутки (не менее -32767)
Методы
Change Обработка события перемещения указателя кнопкой или мышью

Полоса прокрутки может рассматриваться как некоторый счетчик, управляемый указателем. Максимальное и минимальное число, которое может быть записано в счетчик, определяется свойствами Max и Min, текущее значение числа, записанного в счетчик, хранится в свойстве Value. Для изменения свойства Value при движении указателя предусмотрено два шага LargeChange и SmallChange, соответствующие щелчку мыши по полосе прокрутки и по ее концевой кнопке. Любое изменение положения указателя вызывает метод Change.