当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

C++ Builder 初学问与答(六)

 6.图形列表组件TreeView
  45)问:有时侯,我希望实现类似资源管理器对文件夹管理的显示方式,和对文件的管理显示方式,在C++Builder中应该怎么办?

  答:在C++Builder中可以直接使用图形列表组件来实现,它包括TreeView、ListView以及Outline组件。其中Outline组件实际上是基于Windows 3.1环境的组件,而且无论从功能还是使用的角度来看,它都无法与TreeView相比,因此完全可以用TreeView组件代替Outline。所以我将主要介绍前面两种组件。这两个组件都在页Win32中。

 

 

 

  46)问:TreeView组件是一个怎样的组件?

  答:TreeView组件比较复杂,所以我们首先简单地介绍一下这个组件的基本使用情况,然后再深入讨论。

  TreeView组件采用了树形结构,最典型的例子就是Windows 95的资源管理器,它用树形结构显示磁盘上的文件夹和文件。因此TreeView组件能够清晰地显示层次关系。

  47)问:请给我演示一下怎样在设计状态编辑TreeView好吗?

  答:首先在窗体上放置一个TreeView组件,然后在对象编辑器中单击属性Items中的省略号按钮,就会打开一个项目编辑器。

 

  TreeView组件的项目编辑器是一个在设计时专门增加、删除节点和为节点赋予图标的工具。从屏幕上可以看到,项目编辑器由项目组框和项目属性组框组成。项目组框由一个项目列表框、按钮New Item、按钮New SubItem、按钮Delete和按钮Load组成。当你刚打开项目编辑器时,项目列表框是空的,New SubItem和Delete按钮处于失效状态。

  项目属性组框由编辑框Text、编辑框Image Index、编辑框Selected Index和编辑框State Index组成。

  项目组框可以创建和删除节点、子节点。如果要载入一个已经存在的TreeView节点,可以单击按钮Load。要创建一个新项目,单击New Item,然后在文本编辑框中输入新节点的标题。这时,New SubItem按钮由失效变为有效,允许你在节点下再嵌套子节点。如果项目列表框中显示了节点,那么Delete按钮也会变的有效。你只要在项目列表框中选中这个节点然后单击Delete按钮,就可以删除这个节点了。

  要注意的是:如果删除的节点还包括子节点,那么子节点也会被同时删除。

  项目属性组框主要是为当前选中的节点(或子节点)设置属性的。其中编辑框Text可以修改节点的标题。如果要在不是当前被选中的节点的左边显示图像,那么应该在编辑框Image Index中输入图像的索引号。要禁止显示图像可以把这个节点Image Index设置为缺省值-1。

  如果要在被选中的节点的左边显示图像,应该在编辑框Selected Index中指定图像的索引号,索引号是从0开始的。要禁止显示图像可以把它设置为缺省值-1。

 

 

  如果要在节点的左边多显示一个图像,可以在编辑框State Index中输入图像的索引号。这个索引号代表Tree View组件中的StateImages属性所表示的图像列表的索引。要禁止显示图像可以把这个项目设置为缺省值-1。

  注意:Image Index与 Selected Index 使用的是Images指定的ImageList;而State Index使用的是StateImages 指定的ImageList。

  48)问:TreeView的属性太多了,我想问我一定要清楚哪些主要属性?

  答: Items : 该属性包含TreeView组件中的所有节点,它是TtreeNodes的对象,在设计时,你可以使用项目编辑器来增加、删除和修改节点。在运行期间,可以通过Items属性访问每一个节点,并且也能够增加、删除和修改节点。而每一个节点又都是一个TtreeNode对象。

  AutoEWxpand:布尔类型。为true时,则当前被选择的节点将自动扩展,没有被选择节点将自动折叠。缺省为false,这时扩展和折叠要用户自己指定。

  DragMode:其声明为:_property TdragMode DragMode;这个属性用来设置树状视图的拖放模式。缺省为dmManual,用户要拖放节点需要调用BeginDrag才能拖放。若设置为 dmAutomatic,则树状视图将支持自动拖放,用户可以把一个节点拖到另一个位置。

  Images:用来设定TreeView中的不同节点的图标。

  StateImages:用不同的的图像来表示节点的不同状态。

  在TreeView组件中,每个节点除了可以有一个文字标题外,还可以附加图标,这样可以使用户界面更加直观。这两个属性就包含着节点所使用的图标。

  这两个属性都是TImageList的对象,所以如果要在TreeView组件中给节点添加图标,就必须使用图标列表组件给这两个属性赋值。如果在窗体中放置了图标列表组件,那么单击属性Images中的下拉按钮,就可以选取这个组件了。

  ShowButtons属性值为True时表示凡是有子节点的节点将自动具有扩展按钮(即+号按钮)和折叠按钮(即减号按钮),单击它们就可以扩展和折叠节点。属性值为False时,不显示这两个按钮,缺省值为True。

  ShowLines属性用来确定是否显示在节点和子节点之间的连线。缺省值为True。

  ShowRoot属性用来确定与顶层节点连线是否显示。缺省值为True。

  HideSelection属性用来确定当输入焦点从TreeView移动到其它控件上时,被选中的节点是否处于被选中状态。当属性值为True时,不再处于选中状态。缺省值为True。

  Indent属性用来设置子节点与父节点之间缩进显示的距离。

  ReadOnly用来确定用户是否可以直接修改节点的标题。当属性值为False时,表示可以修改。修改方法是,选中要修改的节点并单击进入编辑状态。缺省值为False。

  SortType用来设置节点进行排序的方式。它有以下几种取值:

  stNone:不排序(缺省值);

  stData:当节点所关联的对象发生改变时重新排序;

  stText:当节点的标签发生变化时重新排序;

  stBoth:当节点所关联的对象或者节点的标签发生改变时重新排序。

  以上排序原则为在同一层的节点以标签的字母顺序排序。

 


  此外,还有一些运行时态属性。

  TopItem:这个属性用来设置一个节点,这个节点将显示在树状视图的最上面。

  RowSelcet:缺省为false。若设置为true,则表示当前选择的节点所在的整行都将加亮显示。当ShowLines设置为true时,这个属性无效。

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接