안녕하세요.
우선 폼에 트리뷰, 버튼, 에디트박스, 리스트 박스 이렇게 각각 하나씩 있습니다.
에디트 박스에 apple mango banana 이렇게 입력하고 버튼을 눌렀을때,
입력한 단어의 노드 이름이 존재하면, 그냥 리스트박스에 apple mango banana 뿌려주면 되고, 없을때가 문제입니다.
각각의 단어사이는 스페이스바 입니다.
만약 apple mango banana 이름을 가진 노드가 존재하지 않는다면,
apple 단어가 들어간 노드의 이름들과, mango 단어가 들어간 이름들과, banana 이름이 들어간 이름들을 리스트박스에 보여주려고 합니다.
예를들면 kiwi apple, mango grape 등의 노드 이름을 리스트 박스에 보여주려고 합니다.
결국은 문자열을 잘라서 루프돌리면서 트리뷰도 같이 루프를 돌려야된다고 생각은 하는데....좀처럼 않되네요.
주말 내내 해봤는데, 잘 안되네요. 긁적긁적[-.-]
좀 도와주십시요. -.-
그냥 스트링 파싱해서 루프문 두번쓰시면 될텐데요....
var
CurNode: TTreeNode;
StrList: TStringList;
S: string;
Index: Integer;
begin
S := Edit1.Text; // 'apple mango banana'
StrList := TStringList.Create;
ExtractStrings([' '], [' '], PChar(S), StrList);
CurNode := TreeView1.Items.GetFirstNode;
repeat
for Index := 0 to StrList.Count - 1 do
begin
if Pos(StrList.Strings[Index], CurNode.Text) <> 0 then
begin
ListBox1.Items.Add(CurNode.Text);
Break;
end;
end;
CurNode := CurNode.GetNext;
until CurNode = nil;
StrList.Free;
end;
^^ 항상 즐코하세요...