本文再详细介绍几个在编程中经常用到的窗口属性,主要有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!。通过该属性可以判断当前窗口的状态,也可以使用脚本直接修改该属性来改变窗口的状态。
属性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!。通过该属性可以判断当前窗口的状态,也可以使用脚本直接修改该属性来改变窗口的状态。