Самоучитель по Delphi 7 для профессионалов




Компоненты TTreeView w TListView - часть 4


type TTVExpandedEvent = procedure(Sender: TObject; Node: TTreeNode)of object;

property OnGetlmagelndex: TTVExpandedEvent;

property OnGetSelectedlndex: TTVExpandedEvent;

Пример их использования дан в листинге 5.1 ниже — в момент возникновения этих событий следует переопределить свойство imageindex или Seiectedindex передаваемого в обработчик события объекта TTreeNode.

Свойства stateindex и stateimages можно порекомендовать для имитации множественного выбора. Дело в том, что в отличие от TListview, в TTreeView невозможно одновременно выбрать несколько узлов. Вы можете отслеживать щелчки на узлах, и для выбранных устанавливать значение stateindex в 1; под этим номером в stateimages поместите, например, галочку.

Изложенная информация будет неполной, если не рассказать, на какие события реагирует компонент TTreeView. Большинство из них происходит парами — до наступления какого-то изменения и после него. К примеру, возникновение события onChanging означает начало перехода фокуса от одного узла к другому, a Onchange — его завершение.

Четверка событий

type TTVCollapsingEvent = procedure(Sender: TObject; Node: TTreeNode;

var AllowCollapse: Boolean) of object;

type TTVExpandingEvent = procedure(Sender: TObject; Node: TTreeNode;

var AllowExpansion: Boolean) of object;

property OnExpanding: TTVExpandingEvent;

property OnExpanded: TTVExpandedEvent;

property OnCollapsing: TTVCollapsingEvent;

property OnCollapsed: TTVExpandedEvent;

сопровождает процесс свертывания/развертывания узла, а пара

type TTVEditingEvent = procedure(Sender: TObject; Node: TTreeNode;

var AllowEdit: Boolean) of object;

property OnEditing: TTVEditingEvent;

type TTVEditedEvent = procedure(Sender: TObject; Node: TTreeNode;

var S: string) of object;

property OnEdited: TTVEditedEvent;

сопровождает редактирование его текста. Событие onDeletion происходит при удалении узла. Иногда нужно сравнивать узлы между собой — если вы хотите сделать это по своим правилам, используйте событие oncompare.

Наконец, те, кому и приведенных возможностей мало, могут сами рисовать на компоненте TTreeView. У него есть свойство Canvas и четыре события — OnCustomDraw, OnCustomDrawItem, OnAdvancedCustomDraw, OnAdvancedCustomDrawItem.




Содержание  Назад  Вперед