Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
YaPVUTS.doc
Скачиваний:
31
Добавлен:
11.04.2015
Размер:
3.15 Mб
Скачать
    1. Списки выбора

Списки выбора являются удобными интерфейсными элементами Windows, с помощью которых пользователь может выбрать один или несколько элементов выбора. На закладкеStandart имеются два компонента, которые служат примерами списков выбора: TListBox (обычный список выбора) и TComboBox (раскрывающийся список выбора). Оба эти компонента имеют общего предка TWinControl.

Рассмотрим свойства компонента TListBox.

Таблица 18 Свойства компонента TListBox

AutoComplete

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

BorderStyle

Перечислимое свойство определяет стиль рамки: bsNone – нет рамки; bsSingle – рамка толщиной в один пиксел.

Canvas

Канва для программной прорисовки элементов.

Columns

Определяет количество колонок элементов в списке.

ItemIndex

Содержит индекс сфокусированного элемента. Если свойство MultiSelect равно False, то Itemlndex совпадает с индексом выделенного элемента

Items

Содержит набор строк, показываемых в компоненте

MultiSelect

Логическое свойство, разрешающее (отменяющее) возможность выбора нескольких элементов

SelCount

Содержит количество выбранных элементов

Selected[X: Integer]

Индексированное свойство, которое содержит признак выбора (True/False) для элемента с индексом Х (первый элемент имеет индекс 0)

Sorted

Логическое свойство, которое разрешает/отменяет сортировку строк в алфавитном порядке

Style

Перечислимое свойство, которое определяет способ прорисовки элементов в компоненте: lbStandard – элементы рисует Windows; lbOwnerDrawFixed, lbOwnerDrawVariable – прорисовка элементов осуществляется программно.

TopIndex: Integer

Индекс первого видимого в окне элемента

Создание элементов (опций) списка компонента реализуется с помощью методов свойства Items (типа TStrings) – Add, Append, Insert или LoadFromFile.

Для примера рассмотрим процедуру переноса выбранных строк из одного списка в другой.

procedure TForm1.BitBtn1Click(Sender: TObject);

var i: integer;

begin

for i:=0 to ListBox1.Items.Count-1 do

If ListBox1.Selected[i] then

ListBox2.Items.Add(ListBox1.Items[i]);

end;

Комбинированный список TComboBox представляет собой комбинацию списка TListBox и редактора TEdit, и поэтому большинство его свойств и методов заимствованы у этих компонентов. Существуют пять модификаций компонента, определяемые его свойством Style: csSimple, csDropDown, csDropDownList, csOwnerDrawFixed и csOwnerDrawVariabie. В первом случае список всегда раскрыт, в остальных он раскрывается после нажатия кнопки справа от редактора. В модификации csDropDownList редактор работает в режиме отображения выбора и его нельзя использовать для ввода новой строки (в других модификациях это возможно). Модификации csOwnerDrawFixed и csOwnerDrawVariable используются для программной прорисовки элементов списка.

Собственными у компонента являются лишь свойства и события, связанные с раскрытием списка.

Таблица 19 Свойства и события TComboBox, связанные с раскрытием списка

DropDownCount

Определяет количество элементов списка, появление которых еще не приводит к необходимости прокрутки списка По умолчанию это свойство имеет значение 8: если в списке указано 9 и более элементов (т. е. больше, чем содержит DropDownCount), при его раскрытии к окну будет добавлена полоса прокрутки.

DroppedDown

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

Событие OnDropDown происходит при изменении состояния списка.

    1. Меню

Визуальный компонент класса TMainMenu определяет главное меню формы, которое может быть только у формы. На форму можно поместить сколько угодно объектов этого класса, но отображаться в полосе меню в верхней части формы будет только тот из них, который указан в свойствеMenu формы. После установки компонента на форму необходимо создать его опции. Для этого следует дважды щелкнуть по компоненту левой кнопкой мыши, либо нажать на нем правую кнопку и выбрать команду Menu Designer в появившемся вспомогательном меню. Процесс создание опций меню имеет интуитивно понятный интерфейс. Перейдите в окно Инспектора объектов и введите текст опции в строке caption, после чего нажмите Enter – опция готова, и можно переходить к следующей. Каждая опция главного меню может раскрываться в список подопций или содержать конечную команду. Для создания подопций щелкните мышью по строке ниже опции и введите первую подопцию. Продолжайте ввод, пока не будет создан весь список подопций, после чего щелкните по пустому прямоугольнику справа от первой опции и введите вторую опцию. В названиях опций можно указать символ “&” перед тем символом, который определит клавишу быстрого выбора опции (в терминологии Windows такие клавиши называются акселераторами). Например, на рисунке показана опция Файл, которую можно выбрать сочетанием клавиш Alt+Ф. При создании меню эта опция в строке Сaption в Инспекторе объектов содержала текст &Файл. При желании можно вставить разделительную черту, отделяющую группы подопций. Для этого необходимо назвать очередной элемент меню именем “–”.

Для создания разветвленных меню, т. е. таких, у которых подопций вызывают новые списки подопций, щелкните по подопций и нажмите Ctrl+вправо, где вправо – клавиша смещения курсора вправо. Такого же эффекта можно добиться после щелчка правой кнопкой мыши на подопций и выборе продолженияСreate Submenu. На рисунке показан пример разветвленной структуры меню.

Таблица 20Свойства компонента TMainMenu

AutoHotkeys

Перечислимое свойство, определяющее будет ли следить программа за уникальностью клавиш быстрого выбора для всех опций меню: maAutomatic – автоматически при создании опции; maManual – с помощью вызова специального метода; maРarent – по правилу, установленному для опции верхнего уровня

Images

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

Items

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

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

Таблица 21 Свойства TMenuItem

AutoCheck

Логическое свойство, которое определяет, будет или нет автоматически изменяться свойство Сhecked при выборе опции меню

AutoHotkeys

Определяет, будет ли следить программа за уникальностью клавиш быстрого выбора для подопций: maAutomatic – автоматически при создании подопции; maManual – с помощью вызова специального метода; maParent – по правилу, установленному для опции верхнего уровня

Bitmap

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

Break

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

Checked

Если свойство содержит True, рядом с опцией появляется галочка

Count

Содержит количество опций в подчиненном меню, связанном с данным элементом (только для чтения)

ImageIndex

Содержит индекс связанного с опцией изображения из компонента TImageList. Это изображение (если оно есть) появляется слева от опции. Если свойство имеет значение -1, с опцией не связано никакого изображения из TImageList

Items[Index: Integer]

Позволяет обратиться к любой опции подчиненного меню по ее индексу

Shortcut

Задает клавиши-акселераторы для быстрого выбора данной опции

В Delphi 4 (5 и 6) появилась возможность связывать с опциями меню небольшие изображения. Эти изображения можно задать либо свойством BitMap, либо свойством ImageIndex. В последнем случае предполагается, что для меню в целом определено свойство Images. Изображение показывается слева от опции. Например, на рисунке показан фрагмент главного меню Delphi с раскрытой опцией File. Как видим, опции Open, Оpen Project, Save и т. д. снабжены небольшими пиктограммами. Введение пиктограмм в меню повышает наглядность

СвойствоBreak по умолчанию имеет значение mbNone. Два других возможных значения этого свойства используются для создания многоколончатых списков подменю. Значение mbBarBreak заканчивает предыдущую колонку и начинает новую. Эта опция меню будет открывать новую колонку, которая отделяется от предыдущей вертикальной чертой. Значение mbBreak также создает новую колонку, но не вставляет разделительную черту. Эти значения игнорируются в опциях самого первого уровня. В окне конструктора многоколончатое меню отображается как обычное.

Для элемента меню определено единственное событие OnClick, которое возникает при щелчке на опции или при нажатии Enter, если в этот момент данная опция была выбрана (подсвечена). Обработчик события становится доступен после двойного щелчка на опции в окне конструктора меню.

Компоненты класса TPopupMenu используются для создания вспомогательных (локальных) меню, появляющихся после нажатия правой кнопки мыши. В отличие от главного меню, вспомогательное меню может быть создано для любого оконного компонента. Чтобы связать щелчок правой кнопкой мыши на компоненте с раскрытием вспомогательного меню, в свойство PоpupMеnu компонента необходимо поместить имя компонента-меню.

Вспомогательное меню создается с помощью конструктора меню и содержит элементы описанного в п. 18.1.2 класса TMenuItem, поэтому процесс создания и свойства вспомогательного меню ничем не oтличаются от процесса создания и свойств TMainMenu.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]