这需要用到imageindex,很简单的
解决方案 »
- 高分求介绍:这样的数据库显示控件
- 一个串口通信的问题!请高手帮帮忙!
- 界面编程:如何作一个类似Windows资源管理器主界面?
- 菜鸟求教:如何在delphi中申明自己定义的类?怎么写?在哪写?3x :)
- 邮戳的图形怎么画?
- 小菜求助,关于注册表的问题~
- 欢迎大家共同学习,我的QQ :88657214
- delphi编程!
- 我有一个用acess97创建的一个table,现在我把他放到了win2000下,2000下用的是access2000!我配置了odbc 后,在delphi里面连接table,出现以
- 请教,DelphiXE中怎么让程序支持多种语言,像 繁体,英语,日语之类?
- 如何通过PopupMenu动态创建TreeView?
- 谁能做出象‘蚂蚁’那样的TreeView控件!高分:180,Up一下也有分啊!
var
i: integer;
begin
for i := 0 to treeview1.Items.Count-1 do {设置当前打开项目的图标与未打开项目的图标互异}
TreeView1.Items[i].ImageIndex := 0;
for i := 0 to treeview1.Items.Count-1 do
if treeview1.Items[i].Selected then
begin
TreeView1.Items[i].ImageIndex := 1;
end;
var
i: integer;
begin
for i := 0 to treeview1.Items.Count-1 do {设置当前打开项目的图标与未打开项目的图标互异}
TreeView1.Items[i].ImageIndex := 0;
for i := 0 to treeview1.Items.Count-1 do
if treeview1.Items[i].Selected then
begin
TreeView1.Items[i].ImageIndex := 1;
end;
end;
//设置当前结点及上下级的复选关系。
procedure TForm1.TreeView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Node:TTreeNode;
MyHitTest : THitTests;begin
MyHitTest:=Form1.TreeView1.GetHitTestInfoAt(X,Y);
if (htOnItem in MyHitTest)or(htOnIcon in MyHitTest) And (Button=mbLeft) then
Begin
Node:=Form1.TreeView1.GetNodeAt(X,Y);
Case Node.StateIndex Of
ST_CHECK:Begin
SetChildState(Node,ST_UNCHECK);
end;
ST_UNCHECK:Begin
SetChildState(Node,ST_CHECK);
End;
ST_CHECKING:Begin
SetChildState(Node,ST_UNCHECK);
End;
End;
SetParentState(Node);
End;
end;//将结点子树(含该结点)标为复选或清除状态
Procedure SetChildState(Node:TTreeNode;State:Integer);
var
level:integer;Begin
Node.StateIndex:=State;
level:=Node.Level;
Node:=Node.getFirstChild;
while (Node<>nil)and(Node.Level>level) do
begin
Node.StateIndex:=State;
Node:=Node.GetNext;
end;
End;//根据指定结点状态,设置父结点状态
Procedure SetParentState(Node:TTreeNode);
var
flag:integer;
PNode:TTreeNode;
begin
PNode:=Node.Parent;
if PNode<>nil then
begin
PNode:=PNode.getFirstChild;
flag:=PNode.StateIndex;
while PNode<>nil do
begin
if PNode.StateIndex<>flag then
flag:=2;
PNode:=PNode.getNextSibling;
end;
Node.Parent.StateIndex:=flag;
SetParentState(Node.Parent);
end;
end;
ST_UNCHECK=0;
ST_CHECK=1;
ST_CHECKING=2;
tommychim(大脚鸟):你这个,我用onclick事件做,怎么效果不佳
procedure Tform1.TreeView1GetImageIndex(Sender: TObject;
Node: TTreeNode);
begin
with Node do
if HasChildren then
if Expanded then
ImageIndex:=17
else
ImageIndex:=16
else
ImageIndex:=19;
//Node.ImageIndex:=14;
end;procedure Tform1.TreeView1GetSelectedIndex(Sender: TObject;
Node: TTreeNode);
begin
with Node do
if HasChildren then
SelectedIndex:=ImageIndex
else
SelectedIndex:=18;
end;