資源描述:
《C通過返回值改變屬性》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、通過返回值改變屬性對象的屬性值可以通過返回值來設(shè)置,這與通過明確設(shè)置檢索如SetBackColor和SetProperty相比較,系統(tǒng)利用率將顯著減少。以高系統(tǒng)利用率改變屬性的實例Circle1處的動作,可見,觸發(fā)變量"toll",2秒:if(GetTagWord("toll")>20){SetBackColor(lpszPictureName,lpszObjectName,CO_RED);//背景色SetLeft(lpszPictureName,lpszObjectName,199);//位置XS
2、etTop(lpszPictureName,lpszObjectName,199);//位置Y}else{SetBackColor(lpszPictureName,lpszObjectName,CO_GRAY);//背景色SetLeft(lpszPictureName,lpszObjectName,99);//位置XSetTop(lpszPictureName,lpszObjectName,99);//位置Y}returnTRUE;//可見功能相同,以低系統(tǒng)利用率改變屬性的實例Circle1處的動作
3、,背景色,觸發(fā)變量"toll",2秒:if(GetTagWord("toll")>20)returnCO_RED;elsereturnCO_GRAY;Circle1處的動作,位置X,觸發(fā)變量"toll",2秒:if(GetTagWord("toll")>20)return199;elsereturn99;Circle1處的動作,位置Y,觸發(fā)變量"toll",2秒:if(GetTagWord("toll")>20)return199;elsereturn99;技術(shù)背景:在第一種情況中,在動作內(nèi)檢索se
4、t函數(shù),這些函數(shù)將引發(fā)到PDLRT的任務(wù)切換。PDLRT建立畫面中的必需部分。之后,設(shè)置下一個set檢索。在第二個實例中,用戶必須執(zhí)行3個動作,但這是一種非??焖俚姆椒?。腳本控制的動作執(zhí)行后,將收集全部結(jié)果并馬上將結(jié)果傳送給PDLRT。這僅涉及到一次任務(wù)切換?,F(xiàn)在,PDLRT可以對畫面設(shè)置進(jìn)行優(yōu)化,因為所有的值均可利用。這僅涉及到一次畫面設(shè)置。如果需要執(zhí)行復(fù)雜的計算或操作,以便檢查例如顏色更改,則可以設(shè)置項目函數(shù),該函數(shù)會執(zhí)行計算并將其填充到C結(jié)構(gòu)中。其它動作可從該C結(jié)構(gòu)中讀取,然后重新傳送返回值。
5、GetTag/SetTag或GetTagWait/SetTagWait要讀取和描述過程變量,缺省情況下使用函數(shù)GetTag和SetTag。GetTag還是GetTagWait?通過GetTag檢索的過程變量均放置在圖像中。因為圖象的更新與讀取是兩個分離的過程,所以,GetTag調(diào)用將不受連接的直接影響。這樣,可比GetTagWait檢索執(zhí)行得更快、更不受約束。使用GetTagWait,已請求的過程變量并未在圖像中接收。GetTagWait檢索可明確地讀取AS中的數(shù)值。這始終包含通過連接和AS反應(yīng)時間
6、的來回路徑。在運行時,C動作的處理鎖定而且不能預(yù)先估計檢索需要持續(xù)多久。如果正在讀取多個變量,時間將增加。如果快速寫/讀過程需要同步,那么需要檢索GetTagWait,要避免數(shù)值從AS確切讀取或在映像中注冊。在循環(huán)C動作中應(yīng)避免GetTagWait檢索,因為它是引起性能問題的主要原因。SetTag還是SetTagWait?SetTag檢索將發(fā)出一個寫作業(yè),而不需等待AS的確認(rèn)。SetTagWait檢索將發(fā)出一個寫作業(yè),且需要等待AS的確認(rèn)。這始終包含通過連接和AS反應(yīng)時間的來回路徑。在運行時,C動作
7、的處理鎖定而且不能預(yù)先估計檢索需要持續(xù)多久。如果正在寫入多個變量,時間將增加。SetTagWait檢索將用于確保在對C動作進(jìn)行進(jìn)一步的處理之前,寫入數(shù)值。在循環(huán)C動作中,應(yīng)避免SetTagWait調(diào)用。説明GetTag與GetTagWait之間的差別也適用于內(nèi)部變量。然而,在這種情況下的差別將不是十分嚴(yán)重,因為沒有出現(xiàn)任何連接。內(nèi)部變量也需要使用相應(yīng)的wait函數(shù),以便對快速寫/讀過程進(jìn)行同步。有關(guān)詳細(xì)信息,請參見相應(yīng)的函數(shù)描述。用變量觸發(fā)器代替時間觸發(fā)器使用圖形編輯器,動態(tài)對話框中動作的缺省設(shè)置是
8、變量觸發(fā)器,而C動作的缺省設(shè)置則是時間為2秒的標(biāo)準(zhǔn)觸發(fā)器。帶有缺省設(shè)置的動態(tài)對話框帶有缺省設(shè)置的C動作使用標(biāo)準(zhǔn)觸發(fā)器可導(dǎo)致較高的系統(tǒng)利用率。因此,推薦使用下列組態(tài):將時間觸發(fā)器更改為變量觸發(fā)器為了在C動作中組態(tài)變量觸發(fā)器,可按下述方法執(zhí)行:?使用此按鈕打開"改變觸發(fā)器"窗口。?選擇"觸發(fā)器"作為事件。?用于在動作中進(jìn)行讀取的全部變量均應(yīng)在此處指定。?此外,對于標(biāo)準(zhǔn)周期,可設(shè)置為1秒或2秒。這可通過雙擊所要改變的標(biāo)準(zhǔn)周期來完成(缺省值為2秒)。在"更新"窗口中選擇所期望