Программирование в Delphi. Барков И.А - 42 стр.

UptoLike

Составители: 

42
узлом данные (параметр Data), а в первом вместо них записывается nil.
function Add(Index: Longint; const Text: string): Longint;
function AddObject(Index: Longint; const Text: string;
const Data: Pointer): Longint;
добавляют новый узел в качестве последнего в тот же список, где находится узел Index. По-
скольку на самом верху иерархии может быть только один узел, то в случае задания Index = 0 он до-
бавляется в список верхнего уровня. Соответствуют режиму oaAdd;
function AddChild(Index: Longint; const Text: string): Longint;
function AddChildObject(Index: Longint; const To" : string;
const Data: Pointer): Longint;
добавляют новый
узел в качестве последнего потомка узла Index. Соответствуют режиму
oaAddChild;
function Insert(Index: Longint; const Text: string): Longint;
function InsertObject(Index: Longint; const Text: string;
const Data: Pointer): Longint;
вставляют узел в положение Index. При этом прежний узел с таким индексом и все другие на
этом уровне сдвигаются вниз. Единственное исключениезадание в качестве параметра нулевого ин-
декса. В этом случае узел добавляется последним в список самого верхнего уровня. Соответствуют ре
-
жиму oalnsert. Все методы вызывают переиндексирование дерева и возвращают уже новый индекс для
вставленного узла. Если нужно удалить узел, то метод procedure Delete(Index: Longint);
удаляет узел с индексом Index, а метод
procedure Clear;
очищает все дерево.
Если нужно вставить или удалить сразу много узлов и при этом избежать трудоемких операций
переиндексации и перерисовки дерева, то соответствующий код
надо заключить между вызовами ме-
тодов:
procedure BeginUpdate;
procedure EndUpdate;
Первый устанавливает специальное состояние обновления и на время запрещает все пересчеты
и перерисовки, а второй сбрасывает его и обновляет дерево. Это состояние можно изменить и при по-
мощи метода:
procedure SetUpdateSCate(Value: Boolean);
Дерево можно полностью свернуть или полностью развернуть вызовом методов:
procedure FullExpand;
procedure FullCollapse;
Каждый узел, изменяя свое состояние, предупреждает
об этом родительское дерево. В зависи-
мости от того, свернулся он или развернулся, вызываются обработчики событий
(pb) property OnExpand: EOutlineChange;
(РЬ) property OnCollapse: EOutlineChange;
EOutlineChange = procedure (Sender: TObject; Index: Longint) of object;
где параметр Index означает индекс узла, измешшшего состояние. Метод
function GetNodeDisplayWidth(Node: TOutlineNode): Integer;
возвращает ширину, занимаемую изображением узла (если установленньш стиль не osOwner-
Draw, см. ниже).
Дерево может быть загружено и выгружено в поток и файл
при помощи методов:
procedure LoadFromFile(const FileName: strings-procedure LoadFromStream(Stream: TStream);
procedure SaveToFile(const FileName: strings-procedure SaveToStream(Stream: TStream) ;
Для прокрутки информации TOutline по умолчанию имеет обе полосы, определяемые свойст-
вом:
(Pb) property ScrollBars: TScrollStyle;
TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth);
Строка (символ), разделяющий имена узлов при составлении полного имени узла, содержится в
узлом данные (параметр Data), а в первом вместо них записывается nil.
        function Add(Index: Longint; const Text: string): Longint;
        function AddObject(Index: Longint; const Text: string;
        const Data: Pointer): Longint;
        — добавляют новый узел в качестве последнего в тот же список, где находится узел Index. По-
скольку на самом верху иерархии может быть только один узел, то в случае задания Index = 0 он до-
бавляется в список верхнего уровня. Соответствуют режиму oaAdd;
        function AddChild(Index: Longint; const Text: string): Longint;
        function AddChildObject(Index: Longint; const To" : string;
        const Data: Pointer): Longint;
        — добавляют новый узел в качестве последнего потомка узла Index. Соответствуют режиму
oaAddChild;
        function Insert(Index: Longint; const Text: string): Longint;
        function InsertObject(Index: Longint; const Text: string;
        const Data: Pointer): Longint;
        — вставляют узел в положение Index. При этом прежний узел с таким индексом и все другие на
этом уровне сдвигаются вниз. Единственное исключение — задание в качестве параметра нулевого ин-
декса. В этом случае узел добавляется последним в список самого верхнего уровня. Соответствуют ре-
жиму oalnsert. Все методы вызывают переиндексирование дерева и возвращают уже новый индекс для
вставленного узла. Если нужно удалить узел, то метод procedure Delete(Index: Longint);
        удаляет узел с индексом Index, а метод
        procedure Clear;
        очищает все дерево.
        Если нужно вставить или удалить сразу много узлов и при этом избежать трудоемких операций
переиндексации и перерисовки дерева, то соответствующий код надо заключить между вызовами ме-
тодов:
        procedure BeginUpdate;
        procedure EndUpdate;
        Первый устанавливает специальное состояние обновления и на время запрещает все пересчеты
и перерисовки, а второй сбрасывает его и обновляет дерево. Это состояние можно изменить и при по-
мощи метода:
        procedure SetUpdateSCate(Value: Boolean);
        Дерево можно полностью свернуть или полностью развернуть вызовом методов:
        procedure FullExpand;
        procedure FullCollapse;
        Каждый узел, изменяя свое состояние, предупреждает об этом родительское дерево. В зависи-
мости от того, свернулся он или развернулся, вызываются обработчики событий
        (pb) property OnExpand: EOutlineChange;
        (РЬ) property OnCollapse: EOutlineChange;
        EOutlineChange = procedure (Sender: TObject; Index: Longint) of object;
        где параметр Index означает индекс узла, измешшшего состояние. Метод
        function GetNodeDisplayWidth(Node: TOutlineNode): Integer;
        возвращает ширину, занимаемую изображением узла (если установленньш стиль не osOwner-
Draw, см. ниже).
        Дерево может быть загружено и выгружено в поток и файл при помощи методов:
        procedure LoadFromFile(const FileName: strings-procedure LoadFromStream(Stream: TStream);
        procedure SaveToFile(const FileName: strings-procedure SaveToStream(Stream: TStream) ;
        Для прокрутки информации TOutline по умолчанию имеет обе полосы, определяемые свойст-
вом:
        (Pb) property ScrollBars: TScrollStyle;
        TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth);
        Строка (символ), разделяющий имена узлов при составлении полного имени узла, содержится в


                                                42