Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
ВнизTreeView низший уровень Найти похожие ветки
← →
Ghost. (2002-10-14 16:54) [0]Как определить все последние значения веток относящихся к каждому уровню например
1111111
ццццццц
йййййй
222222
вввввввв
жжжжжжжж
к
1111111 последними будут ццццццц и йййййй,
к 222222- жжжжжжжж но и к вввввввв последним будет жжжжжжжж
← →
MBo (2002-10-14 17:00) [1]procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
MaxLevel: Integer;
procedure Walk(node:TTreenode);
var
i: Integer;
begin
for i := 0 to node.Count - 1 do begin
if MaxLevel < node.Item[i].level then
MaxLevel:= node.Item[i].level;
walk(node.Item[i]);
end;
end;
begin
MaxLevel := node.Level;
walk(node);
Caption := Inttostr(MaxLevel);
end;
← →
Ghost. (2002-10-14 17:25) [2]Мысль понятна но мне нето надо..поробую из этого сделать сам
← →
MBo (2002-10-15 10:06) [3]procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
MaxLevel: Integer;
MaxData:String;
procedure Walk(node:TTreenode);
var
i: Integer;
begin
for i:=0 to node.Count-1 do begin
//находит ПЕРВЫЙ из самых глубоких элементов.
//если надо последний, замени < на <=
if MaxLevel< node.Item[i].level then begin
MaxLevel:=node.Item[i].level;
MaxData:=node.item[i].Text;
end;
walk(node.Item[i]);
end;
end;
begin
MaxLevel:= node.Level;
MaxData:=node.Text;
walk(node);
Caption:= Inttostr(MaxLevel)+ " "+MaxData;
end;
← →
MBo (2002-10-15 10:28) [4]
procedure TForm1.Button1Click(Sender: TObject);
var
Node:TTreeNode;
MaxLevel: Integer;
MaxText:String;
procedure Walk(node:TTreenode);
var
i: Integer;
begin
for i:=0 to node.Count-1 do begin
if MaxLevel<= {или <} node.Item[i].level then begin
MaxLevel:=node.Item[i].level;
MaxText:=node.item[i].Text;
end;
walk(node.item[i]);
end;
end;
begin
Node:=TreeView1.Items.GetFirstNode;
while Node<>nil do begin
MaxLevel:=0;
MaxText:=node.Text;
walk(node);
Memo1.Lines.Add(MaxText);
Node:=Node.GetNextSibling;
end;
end;
← →
Ghost. (2002-10-15 11:27) [5]
procedure TForm1.Button1Click(Sender: TObject);
var
Node, lChild:TTreeNode;
begin
Node:=DATreeView1.Items.GetFirstNode;
while node<>nil do
begin
//:=Node.text;
///////////////////////////////////////////////////////////////////////
lChild:=Node.getFirstChild;
repeat
if lChild<>nil then
begin
if lChild.Count=0 then ListBox2.Items.Add(lChild.Text);
end;
lChild:=Node.GetNextChild(lChild);
until lChild = nil;
////////////////////////////////////////////////////////////////////
Node:=Node.GetNextSibling;
end;
end;
Вот я написал процедурку которая находит все последние уровни для самого первого...смысл..надо дописать, чтобы она делала тоже самое поочереди для кажного из низших уровней независимо для их количества..вот..
← →
Milz (2002-10-15 11:46) [6]Сорри, могут быть ошибки в синтаксисе и не только ;).
procedure NodeList(Node:TTreeNode)
var
lChild:TTreeNode;
begin
if node.Count>0 then begin
lChild:=Node.getFirstChild;
repeat
if lChild<>nil then
begin
NodeList(lChild);
end;
lChild:=Node.GetNextChild(lChild);
until lChild = nil;
end else begin
ListBox2.Items.Add(Node.Text);
end;
end;
procedure TForm1.ListCalc;
begin
NodeList(DATreeView1.Items.GetFirstNode);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c