Турбо Паскаль 6.0

TListBox Dialogs


+-------------+ | TObject | +------+------+ +------+------+ | TView | +------+------+ +------+------+ | TListViewer | +------+------+ +======+======+ | TListBox | +=============+

TListBox, порожденный от TListViewer, помогает Вам создавать наиболее часто используемые окна списков отображающих коллекции строк таких, как имена файлов. Объекты TListBox отображают списки таких элементов в одну или более колонок с возможной вертикальной полосой скроллинга. Горизонтальные полосы скроллинга не поддерживаются в TListViewer. Наследуемые методы TListViewer позволяют Вам выбрать (и подсветить) элементы мышкой или через клавиатуру. TListBox не перекрывает TListViewer.HandleEvent и TListViewer.Draw, поэтому Вы должны просмотреть их описание до использования TListBox в своих программах. TListBox имеет дополнительное поле List, которое указывает на объект TCollection, содержащий выводимые и выбираемые элементы. Ответственность за вставку данных в TCollection лежит на Вас так же как и действия, выполняемые при выборе элемента. TListViewer наследует метод Done от TView, поэтому Вы так же отвечаете за освобождение содержимого List при окончании работы. Вызов NewList будет освобождать старый список, поэтому вызов NewList(nil) и последующее освобождение окна списка будут освобождать все.

Поля

List List: PCollection; Только чтение List указывает на коллекцию элементов для просмотра. Это может быть коллекция PString, представляющая текстовые элементы.

Методы

Init constructor Init(var Bounds: TRect; ANumCols: Word; AScrollBar: PScrollBar); Создает окно списка с заданным размером, числом колонок и вертикальной полосой скроллинга, указываемой указателем AScrollBar. Этот метод вызывает TListViewer.Init с аргументом горизонтальной полосы скроллинга nil. Поле List первоначально nil (пустой список) и наследуемое поле Range устанавливается в 0. Ваша программа должна задать TCollection, содержащую строки (или другие объекты для вывода). Поле List должно быть установлено на эту коллекцию с использованием NewList.


См. так же: TListViewer.Init, TListBox.NewList

Load constructor Load(var S: TStream); Создает объект TListBox и загружает его значениями из TStream. Этот метод вызывает метод TListViewer.Load, затем устанавливает List, читая указатель List из S с помощью S. Get.

См. так же: TListViewer.Load, TListBox.Store, TStream.Get

DataSize function DataSize: Word; virtual; Перекрывается: Иногда Возвращает размер читаемых и записываемых данных для записей, передаваемых в TListBox.GetData и TListBox.SetData. Эти 3 метода полезны для инициализации групп. По умолчанию TListBox.DataSize возвращает размер указателя плюс размер слова (для List и выбранного элемента). Вам может потребоваться перекрыть этот метод для Вашей программы.

См. так же: TListBox.GetData, TListBox.SetData

GetData procedure GetData(var Rec); virtual; Перекрывается: Иногда Записывает данные объекта TListBox в запись. По умолчанию этот метод пишет в Rec текущие поля List и Focused. Вам может потребоваться перекрыть этот метод для Вашей программы.

См. так же: TListBox.DataSize, TListBox.SetData

GetText function GetText(Item: Integer; MaxLen: Integer): String; virtual; Перекрывается: Иногда Возвращает строку из вызываемого объекта TListBox. По умолчанию возвращаемая строка получается из элемента Item в TCollection, используя PString(List^.At(Item))^. Если List содержит не строковые объекты, Вам необходимо перекрыть этот метод. Если List - nil, GetText возвращает пустую строку.

См. так же: TCollection.At

NewList procedure NewList(AList: PCollection); virtual; Перекрывается: Редко Если AList не nil, новый список, заданные в AList, заменяет текущий List. Наследуемое поле Range устанавливается в поле Count новой TCollection и первый элемент активизируется вызовом FocusItem(0). Наконец, новый список отображается вызовом DrawView. Заметим, что если предыдущее поле List не nil, оно освобождается до назначения нового списка значений.

См. так же: TListBox.SetData, TListViewer.SetRange, TListViewer.FocusItem, TView.DrawView



SetData procedure SetData(var Rec); virtual; Перекрывается: Иногда Заменяет текущий список со значениями List и Focused, считанными из Rec. SetData вызывает NewList так, чтобы новый список отображался с корректным активным элементом. Как с GetData и DataSize, Вам может потребоваться перекрыть этот метод для Вашей программы.

См. так же: TListBox.DataSize, TListBox.GetData, TListBox.NewList

Store procedure Store(var S:TStream); Записывает окно списка в TStream, вызывая TListView.Store, затем выводит коллекцию в список, вызывая S.Put(List).

См. так же: TListBox.Load, TListViewer.Store, TStream.Put

Палитра

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

1 2 3 4 5 +===+===+===+===+===+ CListViewer | 25| 26| 27| 28| 29| +=+=+=+=+=+=+=+=+=+=+ Активный ------+ | | | +-- Разделитель Неактивный --------+ | +------ Выбранный Сфокусированный -------+


Содержание раздела