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

         

TCluster Dialogs


+------------+ | TObject | +------+-----+ +------+-----+ | TView | +------+-----+ +======+=====+ | TCluster | +====+===+===+ +--------+ +-------+ +-------+-------+ +------+------+ | TRadioButtons | | TCheckBoxes | +---------------+ +-------------+

Кластер - это группа элементов управления, которые откликаются одинаково. TCluster - это абстрактный тип объекта, из которого порождаются группы элементов управления TRadioButtons и TCheckBoxes. Элементы управления кластера часто ассоциируются с объектами TLabel, позволяя Вам выбирать элемент управления, выбирая дополнительную метку с объяснением. В то время, как кнопки используются для генерации команд, а строки ввода - для редактирования строк, кластеры используются для переключения битовых значений поля Value (типа Word). Стандартные наследники TCluster используют различные алгоритмы изменения Value: TCheckBoxes просто переключает бит, а TRadioButtons включает один бит и очищает предварительно выбранный бит. Оба объекта наследуют почти все свое поведение от TCluster.

Поля

Value Value: Word; Только чтение Текущие значения элемента управления. Действительнвый смысл этого поля определяется методами, разработанными в типах объектов, порожденных от TCluster.

Sel Sel: Integer; Только чтение Текущий выбранный элемент кластера.

Strings Strings: TStringCollection; Только чтение Список элементов кластера.

Методы

Init constructor Init(var Bounds: TRect; AStrings: PSItem); Очищает поля Value и Sel. Параметр AStrings обычно выполняет серию вложенных вызовов глобальной функции NewSItem. Таким образом весь кластер зависимых или независимых кнопок может быть создан одним вызовом констрактора:

var Control: PView; . R.Assign(30, 5, 52, 7); Control := New(PRadioButtons, Init(R, NewSItem('~F~orward', NewSItem('~B~ackward', nil)))); .

Когда в кластер добавляются дополнительные зависимые или независимые кнопки, просто копируется первый вызов NewSItem и заголовок заменяется требуемым текстом. Затем добавляется дополнительная закрывающая скобка для каждой новой добавленной строки и оператор будет компилироваться без синтаксических ошибок. См. так же: тип TSItem


Load constructor Load(var S: TStream); Создает объект TCluster, вызывая TView.Load(S), затем устанавливает поля Value и Set вызовом S.Read. Наконец поле String кластера загружается из S с помощью Strings.Load(S). Используется совместно с TCluster.Store для сохранения и получения объектов TCluster из потока. См. так же: TCluster.Store, TView.Load

Done destructor Done; virtual; Перекрывается: Иногда Освобождает память, распределенную под строку кластера, затем разрушает видимый элемент, вызывая TView.Done. См. так же: TView.Done



DataSize function DataSize: Word; virtual; Перекрывается: Редко Возвращает размер Value. Должен перекрываться в порожденных типах объектов, которые изменяют Value или добавляют другие поля данных для того, чтобы работать с GetData и SetData. См. так же: TCluster.GetData, TCluster.SetData

DrawBox procedure DrawBox(Icon: String; Maker: Char); Вызывается методом Draw порожденного типа, чтобы рисовать прямоугольник перед строкой для каждого элемента кластера. Icon - это строка из 5 символов (' [ ] ' для независимых и ' ( ) ' для зависимых кнопок). Maker - это символ, используемый для указания, что кнопка отмечена ('X' для зависимых и '.' для независимых кнопок). См. так же: TCheckBoxes.Draw, TRadioButtons.Draw

GetData procedure GetData(var Rec); virtual; Перекрывается: Редко Записывает поле Value в данную запись и рисует кластер. Должен перекрываться в порожденных типах объектов, которые изменяют поле Value для того, чтобы работать с DataSize и SetData. См. так же: TCluster.DataSize, TCluster.SetData, TView.DrawView

GetHelpCtx function GetHelpCtx: Word; virtual; Перекрывается:Редко Возвращает значение Sel добавленное к HelpCtx. Это позволяет Вам задать отдельную констекстную справку для каждого элемента кластера. Допустимый диапазон контекстов равен HelpCtx плюс число элементов кластера минус 1.

GetPalette function GetPalette: PPalette; virtual; Перекрывается: Иногда Возвращает указатель на палитру по умолчанию CCLuster.

HandleEvent procedure HandleEvent(var Event: TEvent); virtual; Перекрывается: Редко Вызывает TView.HandleEvent, который обрабатывает все события от мышки и клавиатуры, относящиеся к этому кластеру. Элементы управления выбираются отметкой мышки или клавишами движения курсора (включая Пробел). Кластер перерисовывается, чтобы показать выбранные элементы. См. так же: TView.HandleEvent



Mark function Mark(Item: Integer): Boolean; virtual; Перекрывается: Всегда Вызывается из Draw для определения, какие элементы отмечены. По умолчанию TCluster.Mark возвращает False. Mark должен перекрываться, возвращая True, если элемент управления в кластере отмечен, иначе False.

MovedTo procedure MovedTo(Item: Integer); virtual; Перекрывается: Редко Вызывается из HandleEvent для перемещения полосы выбора на заданный элемент управления в кластере.

Press procedure Press(Item: Integer); virtual; Перекрывается: Всегда Вызывается из HandleEvent когда элемент управления в кластере нажат либо отметкой мышки, либо событием от клавиатуры. Этот абстрактный метод должен быть перекрыт.

SetData procedure SetData(var Rec); virtual; Перекрывается: Редко Читает поле Value из данной записи и перерисовывает кластер. Должен перекрываться в порожденных типах кластеров, которые требуют другие поля для работы с DataSize и GetData. См. так же: TCluster.DataSize, YCluster.GetData, TView.DrawView

SetState procedure SetState(AState: Word; Enable: Boolean); virtual; Перекрывается: Редко Вызывает TView.SetState, затем рисует кластер, если AState - sfSelected. См. так же: TView.SetState, TView.DrawView

Store procedure Store(var S: TStream); Сохраняет объект TCluster в потоке, вызывая TView.Store(S), записывает Value и Sel, затем сохраняет поле Strings кластера, используя его метод Store. Используется совместно с TCluster.Load для сохранения и получения объектов TCluster из потока. См. так же: TCluster.Load, TStream.Write

Палитра

Объекты TCluster используют CCluster - палитру по умолчанию для всех объектов кластера, чтобы отобразить элементы с 16 по 18 в палитру стандартного диалогового окна:

1 2 3 4 +====+====+====+====+ CCluster | 16 | 17 | 18 | 18 | +==+=+==+=+==+=+==+=+ Нормальный ----+ | | +--- Выбранная короткая текст | | клавиша Выбранный -------+ +-------- Нормальная короткая текст клавиша


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