안녕하세요
질문은 두개 입니다.
벌써 몇일동안...좀 도와주세요. -.-
질문 1)
Edit 창에서 텍스트를 입력한 다음 버튼을 누르면 그 이름 (Edit에 입력한 텍스트)을 TreeView 에서 찾아서 그 노드의 AbsoluteIndex 값을 가지고 오고 싶습니다.
또한, 만약 Edit 창에 A라고 입력하고 버튼을 누렀을때,(아래 그림 처럼 TreeView 에서 A 라는 같은 이름의 노드들이 있다면) 세개의 A 를 검색해서 각각의 그 노드들의 AbsoluteIndex 값을 가져왔으면 합니다.
root
가
라
A
나
A
마
다
바
A
사
이렇게 되어 있을때, 마를 에디트창에 입력하면 마의 AbsoluteIndex 값을, A를 입력하면 A 의 각각의 AbsoluteIndex 값(3개)이 필요합니다.
질문 2)
에디트 창에 A 를 입력하고 버튼을 눌렀을때, 메모장이든 리스트 박스이건 다음과 같이
root -> 가 -> 라 -> A
root -> 나 -> A
root -> 다 -> 바 -> A
경로를 나타내게 하려고 합니다.
몇일동안 이것저것 해봤는데, 잘 안됩니다.
그럼 도와주세요.
둘다 루프문쓰시면 간단한데요...
procedure TForm1.Button1Click(Sender: TObject);
begin
SearchNode('A');
end;
procedure TForm1.SearchNode(const NodeName: string);
var
Node: TTreeNode;
begin
Node := TreeView1.Items.GetFirstNode;
repeat
if Node.Text = NodeName then
ListBox1.Items.Add('Absolute Index: ' + IntToStr(Node.AbsoluteIndex));
ListBox1.Items.Add('Path: ' + GetItemPath(Node));
Node := Node.GetNext;
until Node = nil;
end;
function TForm1.GetItemPath(Node: TTreeNode): string;
begin
Result := '';
if Node <> nil then
begin
Result := Node.Text;
while Node.Parent <> nil do
begin
Node := Node.Parent;
Result := Node.Text + '->' + Result;
end;
end;
end;
^^ 항상 즐코하세요...