本文再詳細介紹幾個在程式設計中經常用到的視窗屬性,主要有control,menuid,windowstate和tag等。
屬性tag可以應用於所有的控制項、使用者物件與選單,用來儲存和控制項相關的文字。因為文字可以隨意設定,所以可以根據指令碼的目的來設定各個控制項的tag內容。比如,需要顯示各個控制項的提示資訊時,可以給每個控制項的tag屬性賦予描述控制項功能的文字或者使用注意事項的文字;如果需要知道控制項的類別,可以給每個控制項賦予描述控制項所屬類別的文字(當然還有其他的方法)。例如,下面的指令碼可以顯示frame的幫助資訊:
w_frame.setmicrohelp(this.tag)
例如,下面的指令碼可以根據tag的取值對各個控制項進行初始化:
int li_index,li_total
datawindow ldw_temp
dropdownlistbox lddlb_temp
radiobutton lrb_temp
li_total = upperbound(parent.control)
for li_index = 1 to li_total
choose case lower(parent.control[li_index].tag)
case "datawindow"
ldw_temp = parent.control[li_index]
ldw_temp.reset()
case "dropdownlistbox"
lddlb_temp = parent.control[li_index]
lddlb_temp.selectitem(0)
case "radiobutton"
lrb_temp = parent.control[li_index]
lrb_temp.checked = false
case else
…end choose
next
上面的指令碼中用到了視窗的control屬性。使用該屬性可以引用視窗中的控制項,它是乙個包含視窗中所有控制項的陣列,可以按唯讀方式引用其中的控制項。配合函式typeof可以判斷控制項的型別,根據型別編寫相應的指令碼。在需要對視窗上的控制項做大範圍的調整時,經常使用該屬性陣列進行程式設計。同樣,要實現對視窗中各個控制項復位操作,上面的指令碼可以等價改寫為:
int li_index,li_total
datawindow ldw_temp
dropdownlistbox lddlb_temp
radiobutton lrb_temp
li_total = upperbound(parent.control)
for li_index = 1 to li_total
choose case parent.control[li_index].typeof()
case datawindow!
ldw_temp = parent.control[li_index]
ldw_temp.reset()
case dropdownlistbox!
lddlb_temp = parent.control[li_index]
lddlb_temp.selectitem(0)
case radiobutton!
lrb_temp = parent.control[li_index]
lrb_temp.checked = false
case else
…end choose
next
menuid屬性是乙個指標,並指向和視窗相關聯的選單。在mdi應用程式中,多個工作表都能通過該指標引用其他選單的例項,程式設計師可以編寫出更為通用的指令碼。關於該屬性的應用,第9章已經有很多的例子了。
windowstate屬性是乙個列舉型屬性,可以取值為maximized!,minimized!和normal!。通過該屬性可以判斷當前視窗的狀態,也可以使用指令碼直接修改該屬性來改變視窗的狀態。
PB資料視窗控制項之屬性
屬性 dataobject 資料來源 title 用來顯示在資料視窗的標題條 titlebar 上的乙個字串。建議該字串要有一定的含義,能夠標明資料視窗的用途或者其中的資料的類別。該屬性的預設值none。當屬性titlebar為true時,該屬性起作用。visible 是否顯示資料視窗控制項,預設為...
vi多視窗使用技巧
1 開啟多個視窗 開啟多個視窗的命令以下幾個 橫向切割視窗 new 視窗名 儲存後就是檔名 split 視窗名,也可以簡寫為 sp 視窗名 縱向切割視窗名 vsplit 視窗名,也可以簡寫為 vsp 視窗名 2 關閉多視窗 可以用 q 也可以使用 close,最後乙個視窗不能使用close關閉。使用...
vim多視窗使用技巧
1.同時開啟多個檔案,比如要一邊看配置,一邊寫 vim o one.txt two.txt three.txt 2.已經開啟了檔案 vs 視窗名,橫向新建視窗名檔案 sv 視窗名,縱向新建視窗名檔案 2.比較同一檔案的首尾 new 不加視窗名 顯示已經開啟的檔案的映像 new 視窗名.新建視窗名的檔...