..
항상 많은 고수님들의 도움 감사드립니다.
음...이번에두 도움을 구하려고 합니다.
트리뷰의 특정 노드하위에 있는 자식노드들의 모든 값(텍스트)를 얻어오려고 하는데..
잘 되질 않네요..도와주세요.
아래처럼 하긴 했는데, 도저히 자식 노드들의 텍스트 값들은 얻을 수가 없어요.
고수님들의 지도 부탁드립니다.
---------------------------------------------------------------------------------
var
nodeChild: TTreeNode;
MyList : TStringList;
nLoop:integer;
begin
nodeChild := Node.GetFirstChild;
while nodeChild <> nil
do
begin
MyList.Add(Node.Text);
Tree2List(nodeChild); // recurse for all Node's child nodes
ShowMessage(MyChild.Text);
nodeChild := Node.GetNextChild(nodeChild);
end
;
end;
> ..
>
> 항상 많은 고수님들의 도움 감사드립니다.
>
> 음...이번에두 도움을 구하려고 합니다.
>
> 트리뷰의 특정 노드하위에 있는 자식노드들의 모든 값(텍스트)를 얻어오려고 하는데..
>
> 잘 되질 않네요..도와주세요.
>
> 아래처럼 하긴 했는데, 도저히 자식 노드들의 텍스트 값들은 얻을 수가 없어요.
>
> 고수님들의 지도 부탁드립니다.
> ---------------------------------------------------------------------------------
>
> var
> nodeChild: TTreeNode;
> MyList : TStringList;
> nLoop:integer;
> begin
> nodeChild := Node.GetFirstChild;
> while nodeChild <> nil
> do
> begin
> MyList.Add(Node.Text);
> Tree2List(nodeChild); // recurse for all Node's child nodes
> ShowMessage(MyChild.Text);
> nodeChild := Node.GetNextChild(nodeChild);
> end
> ;
> end;
///////////////////////////////////////////////////////////////
아래예제는 선택된 노드의 자식 텍스트를 리스트박스에 넣은후 DB를 지우는 예제입니다.
수정해서 써보세요. 속도를 내려고 Level를 검색 걸러낸후 Level만큼 Parent를 구해
걸러내거든요, 문론 다른 펑션이 있는지는 모르겠습니다.
procedure TForm1.delete1Click(Sender: TObject);
var
sql_str, TempStr : string;
DelNode, TempNode : TTreeNode;
i, j : integer;
begin
if TreeView1.Selected.Level = 0 then exit;
DelNode := TreeView1.Selected;
//삭제할 서브 노드 리스트 모으기
ListBox1.Clear;
ListBox1.Items.Add( DelNode.Text );
for i := 0 to TreeView1.Items.Count-1 do begin
if DelNode.Level < TreeView1.Items.Item[i].Level then begin
TempNode := TreeView1.Items.Item[i];
for j := 1 to TreeView1.Items.Item[i].Level-DelNode.Level do begin
TempNode := TempNode.Parent;
end;
if DelNode.Text = TempNode.Text then begin
ListBox1.Items.Add( TreeView1.Items.Item[i].Text );
end;
end;
end;
for i := 0 to ListBox1.Items.Count-1 do begin
TempStr := ListBox1.Items.Strings[i];
sql_str := 'Delete from 생산트리 where 생산트리.Pcod = ''' + TempStr + '''';
SqlExecQuery(sql_str);
end;
DelNode.Parent.Selected := True;
TreeView1.Items.Delete(DelNode);
end;