| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 584 人关注过本帖, 1 人收藏
标题:工具栏中的按钮mousemove信息如何发送到状态栏panels(2)中
只看楼主 加入收藏
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:5 
工具栏中的按钮mousemove信息如何发送到状态栏panels(2)中
程序主界面是顶层表单,创建了一个工具栏类(包括几个按钮),类中添加一个用于保存父表单对象的属性(oMainform),请问如何在类中的按钮mousemove事件中调用父表单控件的事件?
程序代码:
**************************************************
*-- 类:           mytoolbar (h:\users\ant\desktop\工具栏与状态栏沟通试验\myvcx.vcx)
*-- 父类:  toolbar
*-- 基类:    toolbar
*-- 时间戳:   03/28/14 07:27:10 PM
*
DEFINE CLASS mytoolbar AS toolbar


    Caption = "Toolbar1"
    Height = 31
    Left = 0
    Top = 0
    Width = 117
    ShowWindow = 1
    omainform = .F.
    Name = "mytoolbar"


    ADD OBJECT command1 AS commandbutton WITH ;
        AutoSize = .T., ;
        Top = 3, ;
        Left = 5, ;
        Height = 25, ;
        Width = 54, ;
        Caption = "代图标1", ;
        Name = "Command1"


    ADD OBJECT command2 AS commandbutton WITH ;
        AutoSize = .T., ;
        Top = 3, ;
        Left = 58, ;
        Height = 25, ;
        Width = 54, ;
        Caption = "代图标2", ;
        Name = "Command2"


    PROCEDURE Init
        Parameter oform
        This.omainform=oform  &&通过omainform属性来引用父表单上所有一切。
    ENDPROC


    PROCEDURE command1.Click
        *!*    do form forms\frm销售管理
    ENDPROC


    PROCEDURE command1.MouseMove
        LPARAMETERS nButton, nShift, nXCoord, nYCoord
        oMainForm.statusbar.panels(2).text="对商品的销售信息进行管理"
    ENDPROC


    PROCEDURE command2.Click
        *!*    do form forms\frm订单
    ENDPROC


    PROCEDURE command2.MouseMove
        LPARAMETERS nButton, nShift, nXCoord, nYCoord
        oMainForm.statusbar.panels(2).text="增加、修改、删除商品信息"
    ENDPROC


ENDDEFINE
*
*-- EndDefine: mytoolbar
**************************************************

程序代码:
PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show
RETURN


    **************************************************
*-- Form:         form1 (h:\users\ant\desktop\工具栏与状态栏沟通试验\mainform.scx)
*-- 父类:  form
*-- 基类:    form
*-- 时间戳:   03/28/14 07:23:00 PM
*
DEFINE CLASS form1 AS form


    Top = 0
    Left = 0
    Height = 609
    Width = 1007
    ShowWindow = 2
    DoCreate = .T.
    Caption = "Form1"
    toptoolbar = .F.
    Name = "Form1"


    ADD OBJECT statusbar AS olecontrol WITH ;
        Top = 581, ;
        Left = 0, ;
        Height = 28, ;
        Width = 1007, ;
        Align = 2, ;
        Name = "statusbar"


    PROCEDURE Activate
        This.TopToolBar = NewObject("MyToolBar","MyVcx")  &&CreateObject
        This.TopToolBar.show()
        This.TopToolBar.dock(0)
    ENDPROC


    PROCEDURE Init
        SET DEFAULT TO SYS(5)+SYS(2003)
    ENDPROC


ENDDEFINE
*
*-- EndDefine: form1
**************************************************

状态栏用的是MS statusbar control 6.0 (sp6)
oMainForm.statusbar.panels(2).text=" ……"    就这两句代码。
mousemove代码部分显示错误:找不到对象omainform。
请名位高手帮忙指教一下,应该怎样改才能在状态栏panels(2)中正确显示出来。
我的系统是win7+VFP9 SP2 7423
搜索更多相关主题的帖子: 工具栏 状态栏 如何 信息 
2014-03-28 21:19
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9842
专家分:27213
注 册:2012-2-5
收藏
得分:10 
在工具栏所在表单的LOAD事件中
PUBLIC oMainForm

在工具栏所在表单的DESTROY/UNLOAD事件中
RELEASE oMainForm




[ 本帖最后由 sdta 于 2014-3-28 23:20 编辑 ]

坚守VFP最后的阵地
2014-03-28 23:18
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
收藏
得分:0 
回复 2楼 sdta
请版主注意工具栏类的init事件
PROCEDURE Init
        Parameter oform
        This.omainform=oform  &&通过omainform属性来引用父表单上所有一切。
ENDPROC
我是想知道参数oform是怎样得到主表单名的,也就是主表单要怎样传递自己的名字给工具栏类.
试了do form mainform name mainform 不行.
上传试验文件
工具栏与状态栏沟通试验.rar (4.21 KB)


[ 本帖最后由 antony521 于 2014-3-29 09:30 编辑 ]
2014-03-29 09:20
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9842
专家分:27213
注 册:2012-2-5
收藏
得分:0 
工具栏中的按钮mousemove信息如何发送到状态栏panels(2)中
楼主要的是结果,而不是过程。

坚守VFP最后的阵地
2014-03-29 09:37
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9842
专家分:27213
注 册:2012-2-5
收藏
得分:10 
myform.rar (3.59 KB)

从MAIN.PRG运行

坚守VFP最后的阵地
2014-03-29 10:05
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
收藏
得分:0 
回复 5楼 sdta
我只是觉得那个方法能通用一些,少了硬代码.sdta版主确实解决了问题.谢谢!结帖.
2014-03-29 11:07
快速回复:工具栏中的按钮mousemove信息如何发送到状态栏panels(2)中
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019694 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved