트리뷰에 캡션을 집어 넣기 위해서는
TreeView1.Items.add( ParrentNode, '캡션') 이렇게 하면 되고
트리뷰에 Object를 집어 넣기 위해서는
TreeView1.Items.AddObject( ParrentNode, '캡션', iMyObject) ; 이렇게 하면 됩니다.
현재 선택된 노드의 캡션을 읽어 오려면
var
iTreeNode: TTreeNode;
begin
if TreeView1.Selected <> nil then begin
iTreeNode := TreeView1.Selected;
Edit1.Text := iTreeNode.Text;
end;
end;
또는 객체의 데이터를 읽어 오려면
var
iTreeNode: TTreeNode;
begin
if TreeView1.Selected <> nil then begin
iTreeNode := TreeView1.Selected;
Edit1.Text := TMyObject(iTreeNode.Data).addr;
end;
end;
하면 됩니다.
그러나 트리뷰에서 가장 중요한 것은 특정 캡션의 자료를 찾는 것입니다.
재귀적 검색 방법에 의해서 찾아 보겠습니다.
function TForm3.GetNodeByCaption(ACurrNode: TTreeNode; const ACaption: string): TtreeNode;
var
jTreeNode: TTreeNode;
begin
Result:= nil;
jTreeNode:= ACurrNode;
while jTreeNode <> nil do begin
// edit2.Text:= jTreeNode.Text; 디버깅용
if CompareText(ACaption, jTreeNode.Text) = 0 then begin
Result:= jTreeNode;
exit;
end else begin
jTreeNode:= jTreeNode.getFirstChild;
while jTreeNode <> nil do begin
Result:= GetNodebyCaption(jTreeNode, ACaption);
if Result <> nil then exit;
jTreeNode:= jTreeNode.GetNextChild(jTreeNode);
end;
end;
end;
end;
function TForm3.GetTVNodeByCaption(iTreeView: TTreeView; const ACaption: string): TTreeNode;
var
iTreeNode : TTreeNode;
begin
Result:= nil;
iTreeNode:= iTreeView.Items.GetFirstNode;
while iTreeNode <> nil do begin
Result:= GetNodeByCaption(iTreeNode, ACaption);
if Result <> nil then exit;
iTreeNode:= iTreeNode.getNextSibling;
end;
end;
를 먼저 선언 해놓고
procedure TForm3.Button3Click(Sender: TObject);
var
iTreeNode: TTreeNode;
begin
iTreeNode:= GetTVNodeByCaption(TreeView1, Edit1.Text);
if iTreeNode <> nil then begin
iTreeNode.Selected:= True;
edit2.Text:= iTreeNode.Text;
end;
end;
하면 됩니다.
2012년 10월 15일 월요일
피드 구독하기:
댓글 (Atom)
델파이의 부활(Antigravity와의 만남)?
델파이 프로그램을 사용하여 개인적으로 필요한 프로그램을 생성해 왔는데, 얼마전부터 파이썬으로 옮겨갔다. 그런데 Google 의 Antigravity를 만나고 나서 델파이에 대한 미련을 버리지 못해 제미나이가 Delphi이에 대한 학습도 엄청 했을...
-
윈도우10에 있는 음성 녹음기는 간단하게 녹음 할 때 간편하고 좋다. 곰 녹음기를 사용하면 오늘기준으로 CPU 점유율이 35% 이상 올라가 맥의 팬이 돌아간다. 윈10의 음성녹음기는 좋은 데 저장 폴더가 디폴트로 되어 있어 사용하기 불편하다. ...
-
도학(제도?)에 쓸만한 가볍고 무료인 2D 캐드가 없나 찾던중 LibreCAD 라는 것을 찾아서 설치하여 도면을 그려보려 했더니 상당히 적응이 안되더군요. 너튜브에 자료가 있으나 별로도움이 안되고, 기본적인것 몇가지만 익히면 금방적응이 될것이라는...
-
해당 comfyui 가상 환경에 설치하여야 함 cd C:\Users\jglee\AppData\Roaming\StabilityMatrix\Packages\ComfyUI PS C:\Users\jglee\AppData\Roaming\StabilityMatr...
댓글 없음:
댓글 쓰기