虚模式

2017-09-15 14:59:44
黄善超
3174
最后编辑:tmtony8 于 2017-09-15 15:24:52

默认情况下,所有插入控件的节点必须包含若干文本,存储在全局内存。然而如果你有大量的项目, 需要太多内存。 为了照顾到这一点, ctTree控件能够运行在虚模式。

 

注意: 控件中的索引指针是长整形。因此,控件不限于32,676项。 仅受限于当前系统可用内存的数。 因此,虚拟存储也许不是必要的。

当控件运行在虚模式,所有文本在控件之外存储。当控件被绘制时, 它将询问主程序每个节点的合适的文本。 控件仍然需要初始化节点数据。不同的是任何使用AddNode方法的任何文本将被忽略。

 

为了在虚模式中使用控件, 要执行下列步骤:

 

设置LoadType属性为1 (虚模式)。任何时刻LoadType属性改变,所有的控件中现有数据被删除。你不能混用装载类型。

添加新节点至控件。因为所有的文本被忽略,你提供控件什么本文都没关系。然而, 所有的其他属性数据必须提供。

GetNode(获得节点)事件中,有些脚本类型可以提供给控件合适的文本。文本可以以你想要的任何方式存储,但是最容易的方法的存储在数列中。以下是在GetNode(获得节点)事件中脚本的一部分。必须注意控件中节点的索引起始值是0不是1。例:

 

ctTree.VirtualText = nCharArray[ nIndex + 1 ]


如果你需要显示工具条,你需要使用SetTips事件和TipsText属性。

如果你需要使用节点编辑功能,你需要用到SetLabelEdit事件与EditText属性。

 

注意: 仅在每个节点的每个单元的文本被绘制之前, GetNode节点将被触发, 即使LoadType 属性没有设置为1(虚模式),也会发生。此时,程序员可以使用VirtualAlign, VirtualForeColor,和VirtualText属性改变文本如何在这时显示。当控件处在虚模式时,为了给控件提供文本,该过程绝对需要