工具栏中的按钮mousemove信息如何发送到状态栏panels(2)中

antony521 2014-03-28 07:45:47
程序主界面是顶层表单,创建了一个工具栏类(包括几个按钮),类中添加一个用于保存父表单对象的属性(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
**************************************************

oMainForm.statusbar.panels(2).text=" ……" 就这两句代码。
mousemove代码部分显示错误:找不到对象omainform。
请名位高手帮忙指教一下,应该怎样改才能在状态栏panels(2)中正确显示出来。
我的系统是win7+VFP9 SP2 7423
...全文
257 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
antony521 2014-03-29
  • 打赏
  • 举报
回复
采用十豆三7楼的方法,OK! This.TopToolBar = NewObject("MyToolBar","MyToolBar",null,thisform) 学习了,谢谢!
十豆三 2014-03-29
  • 打赏
  • 举报
回复
我5楼是一种方法,下面是改造你的方法 1、将类中的 oMainForm.statusbar.panels(2).text="对商品的销售信息进行管理" 改为 thisform.oMainForm.statusbar.panels(2).text="对商品的销售信息进行管理" 2、表单中的 This.TopToolBar = NewObject("MyToolBar","MyToolBar") &&CreateObject 改为 This.TopToolBar = NewObject("MyToolBar","MyToolBar",null,thisform) &&CreateObject
十豆三 2014-03-29
  • 打赏
  • 举报
回复
引用 3 楼 antony521 的回复:
怎么没有人注意到 PROCEDURE Init Parameter oform This.omainform=oform &&通过omainform属性来引用父表单上所有一切。 ENDPROC 我是想知道参数oform是怎样得到主表单名的,也就是主表单要怎样传递参数给工具栏类.
你这是要传给类的,所以要在创建类时传入
十豆三 2014-03-29
  • 打赏
  • 举报
回复
类修改一下: 1、去掉: PROCEDURE Init Parameter oform This.omainform=oform &&通过omainform属性来引用父表单上所有一切。 ENDPROC 2、将 oMainForm 改为 oform1 也就是你表单运行时要这样 Public oform1 do form mainform.scx name oform1
antony521 2014-03-29
  • 打赏
  • 举报
回复
试了do form mainform name mainform 不行
antony521 2014-03-29
  • 打赏
  • 举报
回复
怎么没有人注意到 PROCEDURE Init Parameter oform This.omainform=oform &&通过omainform属性来引用父表单上所有一切。 ENDPROC 我是想知道参数oform是怎样得到主表单名的,也就是主表单要怎样传递参数给工具栏类.
lygcw9602 2014-03-28
  • 打赏
  • 举报
回复
DESTORY 改为 DESTROY
lygcw9602 2014-03-28
  • 打赏
  • 举报
回复
在工具栏所在表单的LOAD事件中 PUBLIC oMainForm 在工具栏所在表单的DESTORY/UNLOAD事件中 RELEASE oMainForm
内容概要:本文档聚焦于通信系统的调制解调技术与Turbo码的结合应用,系统研究了GMSK调制的二比特差分解调方法,以及Turbo码分别与BPSK、GMSK调制方式联合使用的系统性能。通过Matlab平台实现了完整的通信链路仿真,涵盖信号调制、信道编码、解调解码及误码率分析等关键环节,深入探讨了不同调制体制下Turbo编码系统的抗干扰能力与频谱效率表现。研究不仅提供了算法实现代码,还包含了详细的性能对比分析,有助于理解现代数字通信高效编码调制技术的设计原理与工程实现。此外,文档附带多个相关科研方向的仿真案例,展现出广泛的技术延展性与实际应用价值。; 适合人群:具备通信原理、数字信号处理等相关基础知识,熟悉Matlab编程环境,正在从事无线通信系统仿真、信道编码理论研究或相关领域科研工作的研究生、高校教师及工程技术研究人员。; 使用场景及目标:①深入掌握GMSK调制与Turbo码相结合的技术机制,理解其在提高通信可靠性与频谱利用率方面的优势;②熟练运用Matlab构建完整的数字通信仿真系统,完成从调制编码到解调译码的全流程建模与性能评估;③为无人机通信、卫星通信、移动通信等实际应用场景下的高可靠传输系统设计提供理论支持与算法参考。; 阅读建议:建议结合所提供的Matlab代码逐模块运行与调试,重点关注GMSK差分解调过程与Turbo译码的迭代收敛特性,同时可参考文档列出的其他研究课题拓展仿真范围,提升综合科研与工程实践能力。
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 标题所指的"RS485转USB驱动"是一种硬件接口转换技术,其功能在于将传统的RS485通信协议转换为USB接口形式,从而使得现代计算机或设备能够便捷地与采用RS485协议的设备展开通信。RS485作为一种在工业控制、远程通信及多点系统得到普遍应用的串行通信标准,具备传输距离长、抗干扰性能优异等显著优势。文提及的型号(CH340、CH341、FT232RL、PL2303、Y-105)是几种常见的USB至UART(通用异步接收发送器)桥接芯片,它们在USB接口与RS485网络之间充当转换媒介的角色。这些芯片赋予USB通信能力,使得计算机可以通过USB接口与RS485网络的设备执行数据交换。 1. CH340/CH341:这些由韦东山科技研制的USB转串口芯片,常被用于构建低成本的USB转串口适配器。它们提供从USB到UART的转换功能,支持多种波特率的设定,并且在Windows操作系统环境下通常需要安装相应的驱动程序方可正常运作。 2. FT232RL:FTDI公司推出的一款高性能且低功耗的USB到UART桥接器。FT232RL配备全速USB 1.1接口,支持多种串行接口模式,在数据通信、工业控制等领域能够得到广泛应用。同样地,采用FT232RL的设备在连接至电脑时也需要安装对应的驱动程序。 3. PL2303:硅光电子(Prolific)公司所生产的产品,亦是一种常用的USB到UART桥接芯片。它展现出良好的兼容性以及广泛的驱动程序支持,适用于各类USB至串口的应用场景。 4. Y-105:这可能是一款特定的RS485转USB转换模块,或许集成了上述其一种或多种转换...

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧