Foxpro,如何从菜单按钮访问表单



例如,一些简单形式的

define class myf as form
    add object text1 as textbox
    procedure init
        do G:mymenu.mpr with thisform
    endproc
enddefine

和mymen.mpr文件的内容:

parameters f
Define Menu menubar in (m.f.Name) Bar
Define Pad qrs of menubar prompt "Queries"
ON SELECTION pad qrs OF menubar do dosth
procedure dosth
    ???.text1.value = "sample"
endproc

我如何从这里引用myf表格?

尽管Kassie有_screen.ActiveForm选项,但不能保证它总是可用的。然而,您可以始终向_Screen对象添加自定义属性,并将其设置为表单的属性。然后,即使它不是"活动"表单,您也可以始终引用它,并希望将焦点转移到它…

define class myf as form
    add object text1 as textbox
    procedure init
        if NOT PEMSTATUS( _Screen, "oMyForm", 5 )
           _Screen.AddProperty( "oMyForm" )
        endif 
        _Screen.oMyForm = this
        do G:mymenu.mpr 
    endproc
enddefine

然后,在菜单程序中,不需要参数,只需使用附加到_Screen对象的现在公开可见的属性,然后从

Define Menu menubar in (_Screen.oMyForm.Name) Bar
Define Pad qrs of menubar prompt "Queries"
ON SELECTION pad qrs OF menubar do dosth
procedure dosth
    _Screen.oMyForm.text1.Value = "sample"
endproc

我发现的一个可能的解决方案是使用_screen.ActiveForm

_screen.ActiveForm.text1.value

相关内容

  • 没有找到相关文章

最新更新