期貨量化軟件:赫茲量化中圖形對(duì)象集合 - 管理屬性修改
我們需要圖形對(duì)象屬性變化事件,并通過(guò)終端屬性對(duì)話(huà)框來(lái)手動(dòng)控制對(duì)象屬性的變更。

編輯
我們已經(jīng)有了圖形對(duì)象刪除事件 — 該函數(shù)庫(kù)跟蹤終端圖表上所有圖形對(duì)象的數(shù)量,并為每個(gè)打開(kāi)的圖表提供事件標(biāo)志 — 如果圖表對(duì)象的數(shù)量減少,我們能夠找出從圖表中被刪除對(duì)象的數(shù)量,并處理。 我們需要圖形對(duì)象移動(dòng)事件來(lái)控制整個(gè)圖形對(duì)象位置的變化,特別是它的各自錨點(diǎn)。
手動(dòng)創(chuàng)建對(duì)象時(shí)也會(huì)激活移動(dòng)事件。 當(dāng)我們單擊圖表為對(duì)象設(shè)置屬性,但尚未釋放鼠標(biāo)按鈕時(shí),該對(duì)象必須已被創(chuàng)建,且函數(shù)庫(kù)能夠看到其相應(yīng)類(lèi)對(duì)象,并將其添加到集合當(dāng)中。 并非所有對(duì)象屬性值都會(huì)被正確設(shè)置。 鼠標(biāo)按鈕尚未釋放,如果對(duì)象用到了多個(gè)錨點(diǎn),那么我們就可以移動(dòng)對(duì)象,或?yàn)槠湓O(shè)置其余的錨點(diǎn)。 但是當(dāng)我釋放鼠標(biāo)按鈕時(shí),如果所有對(duì)象錨點(diǎn)都已被設(shè)置,則會(huì)創(chuàng)建圖形對(duì)象移動(dòng)事件。 通過(guò)跟蹤事件,并根據(jù)所創(chuàng)建圖形對(duì)象的完整設(shè)置參數(shù)來(lái)更改已創(chuàng)建類(lèi)對(duì)象的屬性值,我們?yōu)樾聞?chuàng)建的對(duì)象的所有屬性設(shè)置正確的值。
更改對(duì)象名稱(chēng)一次性蘊(yùn)含三個(gè)事件 — 移除對(duì)象、創(chuàng)建對(duì)象和更改對(duì)象屬性。 通過(guò)跟蹤這三個(gè)事件來(lái)檢測(cè)現(xiàn)有對(duì)象之一的名稱(chēng)更改。 但我將使用更簡(jiǎn)單的方法。 當(dāng)我們更改對(duì)象名稱(chēng)時(shí), CHARTEVENT_OBJECT_CHANGE 事件總是最后處理。 鑒于所有終端對(duì)象都是按名稱(chēng)和圖表 ID 來(lái)選擇的,由此我們就可以檢查圖表上存在的對(duì)象中哪個(gè)沒(méi)在集合列表之中。 然后我們?cè)趫D表上找到對(duì)象名稱(chēng),若集合 (1) 中不存在該類(lèi)對(duì)象,則找不到相應(yīng)命名的圖表對(duì)象 (2),那么就將該名稱(chēng)添加到 (1) 中檢測(cè)到的類(lèi)對(duì)象集合列表之中。 這可能看起來(lái)很復(fù)雜。 然而,一切其實(shí)都很簡(jiǎn)單。