|
窗口元素的外部引用
窗口元素是指窗口中的窗口變量、窗口中的對象(如按鈕、矩形、自由報表等)以及窗口自定義函數。而窗口元素的外部引用則是指在窗口外部對某一窗口中的元素的引用。這種引用適用於客戶端中的任何腳本。
在老版本中,窗口將內部元素封裝起來,外部腳本隻能將窗口作為一個整體(或者說對象)進行訪問。例如,Open()、Show()、Close()等窗口對象函數都是將窗口作為一個對象來訪問的。但對於窗口中的元素外部則是無法訪問的。紫金橋v6.5及更高級的版本將窗口元素對外開放,讓窗口外部可以隨意引用窗口元素。
下麵以示意圖的方式進一步說明這種引用關係的變化。
在低於紫金橋V6.5的版本中,窗口外部對窗口的引用情況如下圖所示(箭頭指向被訪問者):

窗口外部可以將窗口作為一個整體訪問,但不能訪問窗口中的變量、對象以及窗口自定義函數。
在紫金橋v6.5以上版本中,窗口外部對窗口的引用情況如下圖所示:

窗口外部既可以將窗口作為一個整體訪問,也可以訪問窗口內部的元素。
引用規則
窗口元素的外部引用適用於客戶端中的任何腳本。其引用方式為:
#窗口名.對象名(或變量名或函數名)
例如:想在窗口外某一腳本處引用窗口DRAW1中的按鈕Menu1的“Text”屬性,則可以輸入語句“#DRAW1.Menu1.Text...”。
內部處理
在(zai)運(yun)行(xing)時(shi),如(ru)果(guo)一(yi)個(ge)窗(chuang)口(kou)處(chu)於(yu)關(guan)閉(bi)狀(zhuang)態(tai),而(er)此(ci)時(shi)其(qi)他(ta)腳(jiao)本(ben)正(zheng)在(zai)使(shi)用(yong)該(gai)窗(chuang)口(kou)中(zhong)的(de)元(yuan)素(su),則(ze)係(xi)統(tong)會(hui)自(zi)動(dong)以(yi)隱(yin)藏(zang)的(de)方(fang)式(shi)打(da)開(kai)這(zhe)個(ge)窗(chuang)口(kou)。並(bing)且(qie),在(zai)程(cheng)序(xu)退(tui)出(chu)前(qian)或(huo)者(zhe)用(yong)戶(hu)以(yi)某(mou)種(zhong)方(fang)式(shi)(如腳本)主動關閉該窗口前,這個窗口會一直處於打開狀態。此時應該注意,雖然該窗口不可見,但是實際上它已經被打開,它的窗口腳本已經被激活,如進入窗口腳本、周期執行腳本以及畫麵中的可執行腳本等。
此時如果想判斷某一窗口是否已經被打開,可以使用窗口對象的IsOpen()函數。
優點
窗口元素的外部引用功能方便了紫金橋工程的編寫。在老版本軟件中,除少部分對象(如二維表、全局自定義函數、配方等)能以全局對象的方式使用外,其他絕大部分的對象都隻局限於窗口內部使用,例如:windows控件、自由報表、趨qu勢shi組zu件jian等deng。另ling外wai,若ruo想xiang在zai窗chuang口kou間jian交jiao換huan數shu據ju也ye隻zhi能neng使shi用yong全quan局ju變bian量liang。現xian在zai,窗chuang口kou元yuan素su的de外wai部bu引yin用yong功gong能neng解jie決jue了le這zhe些xie問wen題ti。某mou窗chuang口kou中zhong的de元yuan素su完wan全quan可ke以yi當dang做zuo全quan局ju元yuan素su來lai使shi用yong,這zhe使shi紫zi金jin橋qiao的de工gong程cheng開kai發fa變bian得de更geng為wei靈ling活huo。
缺點
窗chuang口kou元yuan素su的de外wai部bu引yin用yong功gong能neng是shi為wei某mou些xie特te殊shu情qing況kuang下xia的de使shi用yong而er設she計ji的de。過guo多duo的de使shi用yong這zhe種zhong功gong能neng會hui使shi窗chuang口kou進jin程cheng關guan係xi混hun亂luan,難nan以yi確que定ding窗chuang口kou間jian的de依yi賴lai關guan係xi,致zhi使shi程cheng序xu可ke讀du性xing和he穩wen定ding性xing降jiang低di。例li如ru,某mou工gong程cheng中zhong在zai窗chuang口kou2中實時顯示窗口1中的變量n,如果某一時刻窗口1被關閉,雖然係統馬上會以隱藏的方式打開窗口1,但在窗口1關閉的瞬間,變量n的值為壞值,這可能會產生意想不到的後果。
因此,在非必要情況下建議盡量不使用窗口元素的外部引用功能。如果一定要使用,請在詳細了解它的運行原理之後再使用。
|