PB窗口使用技巧之使用窗口属性编程

来源:互联网 发布:按键精灵输入文字源码 编辑:程序博客网 时间:2024/06/05 04:24
本文再详细介绍几个在编程中经常用到的窗口属性,主要有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!。通过该属性可以判断当前窗口的状态,也可以使用脚本直接修改该属性来改变窗口的状态。
0 0