虛模式

2017-09-15 14:59:44
黃善超
3553
最后編輯:tmtony8 于 2017-09-15 15:24:52

默認(rèn)情況下,所有插入控件的節(jié)點(diǎn)必須包含若干文本,存儲(chǔ)在全局內(nèi)存。然而如果你有大量的項(xiàng)目, 需要太多內(nèi)存。 為了照顧到這一點(diǎn), ctTree控件能夠運(yùn)行在虛模式。

 

注意: 控件中的索引指針是長(zhǎng)整形。因此,控件不限于32,676項(xiàng)。 僅受限于當(dāng)前系統(tǒng)可用內(nèi)存的數(shù)。 因此,虛擬存儲(chǔ)也許不是必要的。

當(dāng)控件運(yùn)行在虛模式,所有文本在控件之外存儲(chǔ)。當(dāng)控件被繪制時(shí), 它將詢問(wèn)主程序每個(gè)節(jié)點(diǎn)的合適的文本。 控件仍然需要初始化節(jié)點(diǎn)數(shù)據(jù)。不同的是任何使用AddNode方法的任何文本將被忽略。

 

為了在虛模式中使用控件, 要執(zhí)行下列步驟:

 

?設(shè)置LoadType屬性為1 (虛模式)。任何時(shí)刻LoadType屬性改變,所有的控件中現(xiàn)有數(shù)據(jù)被刪除。你不能混用裝載類型。

?添加新節(jié)點(diǎn)至控件。因?yàn)樗械奈谋颈缓雎?,你提供控件什么本文都沒(méi)關(guān)系。然而, 所有的其他屬性數(shù)據(jù)必須提供。

?GetNode(獲得節(jié)點(diǎn))事件中,有些腳本類型可以提供給控件合適的文本。文本可以以你想要的任何方式存儲(chǔ),但是最容易的方法的存儲(chǔ)在數(shù)列中。以下是在GetNode(獲得節(jié)點(diǎn))事件中腳本的一部分。必須注意控件中節(jié)點(diǎn)的索引起始值是0不是1。例:

 

ctTree.VirtualText = nCharArray[ nIndex + 1 ]


如果你需要顯示工具條,你需要使用SetTips事件和TipsText屬性。

如果你需要使用節(jié)點(diǎn)編輯功能,你需要用到SetLabelEdit事件與EditText屬性。

 

注意: 僅在每個(gè)節(jié)點(diǎn)的每個(gè)單元的文本被繪制之前, GetNode節(jié)點(diǎn)將被觸發(fā), 即使LoadType 屬性沒(méi)有設(shè)置為1(虛模式),也會(huì)發(fā)生。此時(shí),程序員可以使用VirtualAlign, VirtualForeColor,和VirtualText屬性改變文本如何在這時(shí)顯示。當(dāng)控件處在虛模式時(shí),為了給控件提供文本,該過(guò)程絕對(duì)需要。

移動(dòng)訪問(wèn)