Sza*_*aci 10 delphi virtualtreeview
从1年开始,我们就开始在Delphi7中使用VirtualTreeView v5.5.3,非常喜欢!
我们想充分利用该组件的潜力,但是BeginSynch
帮助文件中只有很少的关于该方法的信息。
什么时候应该BeginSynch + EndSynch
使用BeginUpdate + EndUpdate
?
哪一个应嵌套在另一个中?
在这种情况下可以使用哪些方法?(Sort
,ScrollIntoView
,MoveTo
,NodeHeight
,isVisible[]
,...),以组画的操作,以加快应用程序之前?
据我了解,它们有不同的,几乎相反的目的,并且对于您的用例,您将需要BeginUpdate
。
BeginUpdate
通常在需要进行大量更新并且不希望在此过程中进行重绘等操作时调用。许多控件(包括TListBox和TDBGrid)都具有加快批量更新的可能性。
BeginSynch
与事件有关,尤其是OnChange事件。OnChange
当您将ChangeDelay
属性设置为大于0的值时,VirtualTreeView会延迟触发事件。这也意味着您可能会错过一些事件。如果快速连续进行两次更改,则可能只会收到一个事件,或者可能会比预期的晚。BeginSynch将启动一个同步模式,该模式将在进行更改之后(与之同步)立即触发OnChange事件,并覆盖ChangeDelay属性。与保存ChangeDelay属性的值然后再还原它相比,启动此同步模式要容易得多。
因此,从某种意义上讲,您可以说BeginUpdate和BeginSync在速度方面几乎是彼此相反的,但是实际上这只是您的用例。对于您的情况(“分组操作”),您肯定会使用BeginUpdate
。
在这方面,BeginSynch上的文档可能会更加清楚。之所以引用BeginUpdate,是因为它是一种类似的机制(使用某种关联的EndSomething方法输入某种更新模式),而实际上它应该引用的是与功能相关的ChangeDelay。有趣的是,文档底部的“发送反馈”链接实际上并不是一个链接...
归档时间: |
|
查看次数: |
189 次 |
最近记录: |