我的代码如下:
procedure SetComCtlStyle(Ctl: TWinControl; Value: Integer; UseStyle: Boolean);
var
Style: Integer;
begin
if Ctl.HandleAllocated then
begin
Style := GetWindowLong(Ctl.Handle, GWL_STYLE);
if not UseStyle then Style := Style and not Value
else Style := Style or Value;
SetWindowLong(Ctl.Handle, GWL_STYLE, Style);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin SetComCtlStyle(treeview1,TVS_CHECKBOXES,True);
end;procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
for i:=0 to treeview1.Items.Count-1 do
if treeview1.Items[i].Selected then
showmessage('选中: '+inttostr(i)+'—'+treeview1.Items[i].Text);
end;但在Button2Click中取不出来,我估计我Button2Click中写的代码不对?请问哪位知道怎么取打勾的条目???谢谢了先!!!
procedure SetComCtlStyle(Ctl: TWinControl; Value: Integer; UseStyle: Boolean);
var
Style: Integer;
begin
if Ctl.HandleAllocated then
begin
Style := GetWindowLong(Ctl.Handle, GWL_STYLE);
if not UseStyle then Style := Style and not Value
else Style := Style or Value;
SetWindowLong(Ctl.Handle, GWL_STYLE, Style);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin SetComCtlStyle(treeview1,TVS_CHECKBOXES,True);
end;procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
for i:=0 to treeview1.Items.Count-1 do
if treeview1.Items[i].Selected then
showmessage('选中: '+inttostr(i)+'—'+treeview1.Items[i].Text);
end;但在Button2Click中取不出来,我估计我Button2Click中写的代码不对?请问哪位知道怎么取打勾的条目???谢谢了先!!!
解决方案 »
- [顶]delphi 三层 socketconnection 的安全问题,大家是怎么做的?
- 关于打开word文件若干问题。。。。?
- 已知消息框的title,如何得到消息框中的文本?
- *****搜索服务器时总是出现"Undeclared identifier: 'CreateOleObject'的错误.在线等待,得到正确答案马上给分
- listbox控件的两个小问题(100分)
- dao问题dao问题dao问题dao问题
- 关于ComBox问题!
- 关于pchar类型转换,请高手帮忙
- dbgrideh中的打印控件Tprintdbgrideh在打印设置时如何自定义纸张大小?
- 如何将一个文件以流形式打开?????????
- TreeView怎么取值???
- 请问那用Trichedit怎么来设定每一行的文本颜色?
这个帖子中如下代码测试过没?~~~~
//参考如下代码~~
uses CommCtrl;function TreeNodeGetChecked(mTreeNode: TTreeNode): Boolean;
var
vTVItem: TTVItem;
begin
Result := False;
if not Assigned(mTreeNode) or not Assigned(mTreeNode.TreeView) then Exit;
vTVItem.mask := TVIF_STATE;
vTVItem.hItem := mTreeNode.ItemId;
if TreeView_GetItem(mTreeNode.TreeView.Handle, vTVItem) then
Result := (vTVItem.State and IndexToStateImageMask(2)) > 0; //0: None 1: False 2: True
end; { TreeNodeGetChecked }function TreeNodeSetChecked(mTreeNode: TTreeNode; mChecked: Boolean): Boolean;
var
vTVItem: TTVItem;
Template:integer;
begin
Result := False;
if not Assigned(mTreeNode) or not Assigned(mTreeNode.TreeView) then Exit; vTVItem.mask := TVIF_STATE;
vTVItem.hItem := mTreeNode.ItemId;
TreeView_GetItem(mTreeNode.TreeView.Handle, vTVItem);
if not TreeView_GetItem(mTreeNode.TreeView.Handle, vTVItem) then Exit;
vTVItem.stateMask := TVIS_STATEIMAGEMASK;
vTVItem.state := IndexToStateImageMask(Succ(Ord(mChecked)));
Result := TreeView_SetItem(mTreeNode.TreeView.Handle, vTVItem);
end; { TreeNodeSetChecked }procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(TreeView1.Handle, GWL_STYLE,
GetWindowLong(TreeView1.Handle, GWL_STYLE) or TVS_CHECKBOXES);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
TreeNodeSetChecked(TreeView1.Selected, True);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
TreeNodeSetChecked(TreeView1.Selected, False);
end;procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if htOnStateIcon in TreeView1.GetHitTestInfoAt(X, Y) then
Caption := BoolToStr(TreeNodeGetChecked(TreeView1.GetNodeAt(X, Y)), True)
//TODO -oZswang -c事件 : 触发点击选择框
else Caption := '';
end;procedure TForm1.Button3Click(Sender: TObject);
var
I: Integer;
begin
Memo1.Clear;
for I := 0 to TreeView1.Items.Count - 1 do
if TreeNodeGetChecked(TreeView1.Items[I]) then
Memo1.Lines.Add(TreeView1.Items[I].Text);
end;
var i:integer;
function TreeNodeGetChecked(mTreeNode: TTreeNode): Boolean;
var
vTVItem: TTVItem;
begin
Result := False;
if not Assigned(mTreeNode) or not Assigned(mTreeNode.TreeView) then Exit;
vTVItem.mask := TVIF_STATE;
vTVItem.hItem := mTreeNode.ItemId;
if TreeView_GetItem(mTreeNode.TreeView.Handle, vTVItem) then
Result := (vTVItem.State and IndexToStateImageMask(2)) > 0; //0: None 1: False 2: True
end; { TreeNodeGetChecked }
begin
for I := 0 to tv.Items.Count - 1 do
if TreeNodeGetChecked(tv.Items[I]) then
showmessage(tv.Items[I].Text);
end;