Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
6
Добавлен:
26.03.2015
Размер:
2.72 Кб
Скачать
unit TreeFormUnit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, TListUnit, TElementUnit, StdCtrls, ImgList;

const Count = 100;
type
TTreeForm = class(TForm)
TreeView: TTreeView;
AddButton: TButton;
DeleteButton: TButton;
ImageList: TImageList;
procedure DeleteButtonClick(Sender: TObject);
procedure AddButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
RandomList: TElementList; //Случайный список

procedure CreateRandomList; //Создание случайного списка

//Заполнение дерева из списка
procedure ReadToTreeView;
public
{ Public declarations }
end;

var
TreeForm: TTreeForm;

implementation

{$R *.dfm}

procedure TTreeForm.CreateRandomList;
var
Elem: TElement;
Parent, Child: string;
i: integer;
begin
randomize;

RandomList := TElementList.Create;
Parent := 'Родитель';
Child := 'Потомок';

for i := 0 to Count - 1 do
begin
if (random (10) < 2) then
Elem := TElement.Create(Parent)
else
Elem := TElement.Create(Child);

RandomList.Add (Elem);
end;
end;


procedure TTreeForm.ReadToTreeView;
var
RootNode, ParentNode, ChildNode: TTreeNode;
Value: string;
i, j, NodeIndex, ParentIndex: integer;
begin
RootNode := TreeView.Items.Item[0];
ParentNode := nil;

for i:= 0 to Count - 1 do
begin
Value := RandomList[i].Str;
if pos('Родитель', RandomList[i].Str) > 0 then
begin
ParentNode := TreeView.Items.AddChild(RootNode, Value);
ParentNode.StateIndex := 1;
end
else
if ParentNode = nil then
begin
ChildNode := TreeView.Items.AddChild(RootNode, Value);
ChildNode.StateIndex := 1;
end
else
begin
ChildNode := TreeView.Items.AddChild(ParentNode, Value);
ChildNode.StateIndex := 2;
end;
end;
end;

procedure TTreeForm.FormCreate(Sender: TObject);
begin
CreateRandomList;

TreeView.Items.Add(nil, 'Иерархия объектов').StateIndex := 0;
ReadToTreeView;
end;

procedure TTreeForm.AddButtonClick(Sender: TObject);
begin
if TreeView.Selected = nil then
TreeView.Items.Addchild(nil, 'Потомок').StateIndex := 3
else
begin
TreeView.Selected.Text := 'Родитель';
TreeView.Selected.StateIndex := 1;
TreeView.Items.Addchild(TreeView.Selected, 'Потомок').StateIndex := 3;
end;
end;

procedure TTreeForm.DeleteButtonClick(Sender: TObject);
begin
if TreeView.Selected <> nil then
TreeView.Items.Delete(TreeView.Selected);
end;

end.
Соседние файлы в папке TreeView
  • #
    26.03.20151.34 Кб7TListUnit.pas
  • #
    26.03.20152.53 Кб6TListUnit.~pas
  • #
    26.03.20156.82 Кб6TreeFormUnit.dcu
  • #
    26.03.201551 б7TreeFormUnit.ddp
  • #
    26.03.201529.92 Кб6TreeFormUnit.dfm
  • #
    26.03.20152.72 Кб6TreeFormUnit.pas
  • #
    26.03.201551 б6TreeFormUnit.~ddp
  • #
    26.03.201529.92 Кб7TreeFormUnit.~dfm
  • #
    26.03.20152.78 Кб6TreeFormUnit.~pas
  • #
    26.03.20158.03 Кб6TreeViewProject.bdsproj
  • #
    26.03.2015732 б6TreeViewProject.bdsproj.local