TTreeView 컴포넌트를 사용하면 간단하게 구현할 수 있습니다.
다른 방법은 트리에서 체크박스를 지원하는 컴포넌트를 찾으면 되겠지요.
DSP 사이트가 컴포넌트 찾기에는 좋더군요. ^^
TTreeView 컴포넌트를 이용하실 거라면, 다음과 같이 하시면 됩니다.
이전에 올라왔던 질문과 답변의 내용을 그대로 올려드립니다.
김동욱님이 질문하신 내용이구요,
[질문] treeview에 있는 체크박스에 체크여부 넣기
안녕하세요.
treeview에서 체크박스를 넣고 체크여부를 확인은 했는데
프로그램상으로 체크박스에 true, false 여부를 넣는방법을
찾고있습니다.
체크박스 넣는방법
uses절에 CommCtrl을 추가
From Create에
SetWindowLong(treeView1.Handle, GWL_STYLE,
GetWindowLong(treeView1.Handle, GWL_STYLE) OR TVS_CHECKBOXES);
양상훈님이 답변하신 내용입니다.
[답변] treeview에 있는 체크박스에 체크여부 넣기
//Checked 상태를 리턴하는 함수
Function TForm1.GetCheckState(hItem:HtreeITEM):Boolean;
const
TVM_GETITEMSTATE=TV_FIRST+39;
begin
Result:=Boolean(SendMessage(treeView1.Handle,TVM_GETITEMSTATE,
LongInt(hItem),TVIS_STATEIMAGEMASK) Shr 13);
end;
//Checked 상태를 설정하는 프로시져
procedure TForm1.SetCheckState(hItem:HtreeITEM;State:Boolean);
var
TVi:TTVITEMEX;
begin
TVi.mask:=TVIF_STATE;
TVi.hItem:=hItem;
TVi.stateMask:=TVIS_STATEIMAGEMASK;
TVi.state:=ord(GetCheckState(hItem)) or ((ord(State)+1) Shl 12);
SendMessage(treeView1.Handle,TVM_SETITEM,0,longInt(@TVi));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetCheckState(treeView1.Items.Item[0].ItemId,True);
end;
TTreeView 컴포넌트를 사용하면 간단하게 구현할 수 있습니다.
다른 방법은 트리에서 체크박스를 지원하는 컴포넌트를 찾으면 되겠지요.
DSP 사이트가 컴포넌트 찾기에는 좋더군요. ^^
TTreeView 컴포넌트를 이용하실 거라면, 다음과 같이 하시면 됩니다.
이전에 올라왔던 질문과 답변의 내용을 그대로 올려드립니다.
김동욱님이 질문하신 내용이구요,
[질문] treeview에 있는 체크박스에 체크여부 넣기
안녕하세요.
treeview에서 체크박스를 넣고 체크여부를 확인은 했는데
프로그램상으로 체크박스에 true, false 여부를 넣는방법을
찾고있습니다.
체크박스 넣는방법
uses절에 CommCtrl을 추가
From Create에
SetWindowLong(treeView1.Handle, GWL_STYLE,
GetWindowLong(treeView1.Handle, GWL_STYLE) OR TVS_CHECKBOXES);
양상훈님이 답변하신 내용입니다.
[답변] treeview에 있는 체크박스에 체크여부 넣기
//Checked 상태를 리턴하는 함수
Function TForm1.GetCheckState(hItem:HtreeITEM):Boolean;
const
TVM_GETITEMSTATE=TV_FIRST+39;
begin
Result:=Boolean(SendMessage(treeView1.Handle,TVM_GETITEMSTATE,
LongInt(hItem),TVIS_STATEIMAGEMASK) Shr 13);
end;
//Checked 상태를 설정하는 프로시져
procedure TForm1.SetCheckState(hItem:HtreeITEM;State:Boolean);
var
TVi:TTVITEMEX;
begin
TVi.mask:=TVIF_STATE;
TVi.hItem:=hItem;
TVi.stateMask:=TVIS_STATEIMAGEMASK;
TVi.state:=ord(GetCheckState(hItem)) or ((ord(State)+1) Shl 12);
SendMessage(treeView1.Handle,TVM_SETITEM,0,longInt(@TVi));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetCheckState(treeView1.Items.Item[0].ItemId,True);
end;