200分! (200分)

  • 主题发起人 主题发起人 qinghou
  • 开始时间 开始时间
procedure TForm1.OnClickIcon(SelectItems: TtreeNode);//支持两极目录,你完善一下
var i:integer;
begin
SelectItems.ImageIndex:=(SelectItems.ImageIndex +1) mod 2;
SelectItems.SelectedIndex:=SelectItems.ImageIndex;
selectitems.StateIndex:=SelectItems.ImageIndex;
IF SelectItems.HasChildren THEN
for I:=0 to SelectItems.Count-1 do BEGIN
SelectItems.Item.ImageIndex:=SelectItems.ImageIndex;
SelectItems.Item.StateIndex:=SelectItems.ImageIndex;
END
else
case SelectItems.Parent.ImageIndex of
0..1: BEGIN
SelectItems.Parent.ImageIndex:=2;
SelectItems.Parent.StateIndex:=2;
END;
2:begin
for I:=0 to SelectItems.Parent.Count-1 do
if SelectItems.Parent.Item.ImageIndex<>SelectItems.ImageIndex then
break;
if I=SelectItems.Parent.Count then BEGIN
SelectItems.Parent.ImageIndex:=SelectItems.ImageIndex;
SelectItems.Parent.StateIndex:=SelectItems.ImageIndex;
END;
end;
End;
//ImageIndex; 0 为空 1 选中 2 灰色选中
procedure TForm1.TV1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if htOnIcon in tv1.GetHitTestInfoAt(X,y) then
OnClickIcon(tv1.Selected)
End;
//你做两个TreeView,一个TreeView节点显示编码(将Visable=False),
//一个TreeView节点显示名称;
//将显示编码treeview imageindex=1 的列出来!
end;
 
这个东西应该能够写出来的。您看看TTreeView的帮助,或者参考程序啊。

实现起来也不是很烦。
 
谢谢lsys~
解决了一部分问题,我会给你加分的!
还有没有解决其它部分的做法呢?
 
只对你的两百分感兴趣!!!
 
很简单的问题,只不过有点繁琐。
建立TV我就不说了。下面看保存:
i:Integer;
CurrentTN:TTreeNode;
Str:String;
begin
with TV do
for i:=0 to Items.Count do
begin
CurrentTN:=items.item;
Str:='';
if CurrentTN.ImageIndex=X then //图片索引根据你的定义
begin
if CurrentTN.Level=2 then Str:=Str+IntToStr(CurrentTN.Parent.Parent.Index+1);
if CurrentTN.Level=1 then Str:=Str+IntToStr(CurrentTN.Parent.Index+1);
if CurrentTN.Level=0 then Str:=Str+IntToStr(Current.Index+1);
StringList.Add(Str);
end;
end;
end;
 
以前有人问过,我回答了,去找找
 

Similar threads

I
回复
0
查看
573
import
I
I
回复
0
查看
500
import
I
I
回复
0
查看
428
import
I
I
回复
0
查看
700
import
I
后退
顶部