Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-78306
POSNY
2002-10-01 15:16
2002.10.24
DBGrid и отображение логических полей таблиц


14-78590
Serzhik
2002-10-01 18:20
2002.10.24
отладка в Delphi


1-78422
User0
2002-10-15 15:42
2002.10.24
Почему в Delphi работает а в C++ нет ?


3-78284
User0
2002-10-01 14:26
2002.10.24
Почему Event-ы не ловятся ?


3-78295
Fishka
2002-09-30 12:06
2002.10.24
Добавить новый лист в EXCEL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский