Составители:
Рубрика:
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