使用TIMER的纳闷(已调用子窗体,本表单Grid 自动刷新出错了)

落沙惜语 2009-09-16 06:14:16
我做了个表单(FORM1),有GRID1,还有TIMER1。。。
在FORM1有INIT()
WITH THISFORM.GRID1.COLUMN2
.ADDOBJECT('add1','calledit')
.CURRENTCONTROL='add1'
.add1.VISIBLE=.T.
ENDWITH

CALLEDIT 是COMMAND的类
通过ADD1 我调用了表单(FORM2)
当我在FORM2操作时
FORM1.TIMER1.TIMER事件给Grid 自动刷新
THISFORM.INIT()
错误内容
A MEMBER OBJECT WITH THISNAME ALREADY EXISTS

请问如何解决TIMER 有没有可以设置,用户在操作或调用新的表单时就别刷新??????
...全文
129 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
handmars 2009-09-29
  • 打赏
  • 举报
回复
楼主把问题说清楚点
river_a 2009-09-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 dominicwang 的回复:]
我做了个表单(FORM1),有GRID1,还有TIMER1。。。
在FORM1有INIT()
  WITH THISFORM.GRID1.COLUMN2
    .ADDOBJECT('add1','calledit')
    .CURRENTCONTROL='add1' 
    .add1.VISIBLE=.T.
  ENDWITH

CALLEDIT 是COMMAND的类
通过ADD1 我调用了表单(FORM2)
当我在FORM2操作时
  FORM1.TIMER1.TIMER事件给Grid 自动刷新
        THISFORM.INIT()
错误内容
A MEMBER OBJECT WITH THISNAME ALREADY EXISTS

请问如何解决TIMER 有没有可以设置,用户在操作或调用新的表单时就别刷新??????
[/Quote]
你搞什么啊?
在init 里给grid.column2 加了一个object ,
timer 反复执行init ,就等于grid.column2反复添加相同的object ,

即使object 名字不同,也一会儿就把你的程序搞死了


十豆三 2009-09-26
  • 打赏
  • 举报
回复
主要条理没有说清楚。需要再详细说明一下过程及相关代码。
落沙惜语 2009-09-18
  • 打赏
  • 举报
回复
D
落沙惜语 2009-09-18
  • 打赏
  • 举报
回复
谁能帮帮我呀,要分还可以加
ACMAIN_CHM 2009-09-17
  • 打赏
  • 举报
回复
[Quote]问题是我看这代码,只要 timer1 的定时一到,总是要调用 thisform.init ?跟点不点 add1 打开 form2,以及楼主想“调用新的表单时就别刷新”似乎没什么关系[/Quote]

估计楼主仅是想实现刷新
WWWWA 2009-09-17
  • 打赏
  • 举报
回复
init 中代码是什么?
落沙惜语 2009-09-17
  • 打赏
  • 举报
回复
点 add1 后正开着 form2 啊,所以TIMER()无法删除 'add1'

FORM1.INIT()如下:

IF TYPE('THISFORM.GRID1.COLUMN2.add1')= 'O'
*MESSAGEBOX( '此对象存在 ')
THISFORM.GRID1.COLUMN2.REMOVEOBJECT('add1')
ENDIF

SELECT * FROM USER INTO CURSOR SQLUSER

THISFORM.GRID1.RECORDSOURCE=''
THISFORM.GRID1.RECORDSOURCE='sqluser'
THISFORM.GRID1.ColumnCount=6
THISFORM.GRID1.HEADERHEIGHT=22
THISFORM.GRID1.ROWHEIGHT=20
THISFORM.GRID1.LOCKCOLUMNS=3

*THISFORM.GRID1.COLUMN1.CONTROLSOURCE='allt(sqluser.th)'
*THISFORM.GRID1.COLUMN1.WIDTH=25
*tHISFORM.GRID1.COLUMN1.BACKCOLOR=RGB(236,233,216)
*THISFORM.GRID1.COLUMN1.HEADER1.FONTSIZE=9
*THISFORM.GRID1.COLUMN1.HEADER1.ALIGNMENT=2
*THISFORM.GRID1.COLUMN1.HEADER1.CAPTION='区号'

THISFORM.GRID1.COLUMN1.CONTROLSOURCE='allt(sqluser.zh)'
THISFORM.GRID1.COLUMN1.WIDTH=25
THISFORM.GRID1.COLUMN1.BACKCOLOR=RGB(236,233,216)
THISFORM.GRID1.COLUMN1.HEADER1.FONTSIZE=9
THISFORM.GRID1.COLUMN1.HEADER1.ALIGNMENT=2
THISFORM.GRID1.COLUMN1.HEADER1.CAPTION='座号'

THISFORM.GRID1.COLUMN2.CONTROLSOURCE='sqluser.OPTION'
THISFORM.GRID1.COLUMN2.WIDTH=26
THISFORM.GRID1.COLUMN2.HEADER1.FONTSIZE=9
THISFORM.GRID1.COLUMN2.HEADER1.ALIGNMENT=2
THISFORM.GRID1.COLUMN2.HEADER1.CAPTION='添加'

THISFORM.GRID1.COLUMN3.CONTROLSOURCE="RIGHT('000000000'+LTRIM(STR(SQLUSER.CALLID,9)),9)"
THISFORM.GRID1.COLUMN3.WIDTH=72
THISFORM.GRID1.COLUMN3.BACKCOLOR=RGB(236,233,216)
THISFORM.GRID1.COLUMN3.HEADER1.FONTSIZE=9
THISFORM.GRID1.COLUMN3.HEADER1.ALIGNMENT=2
THISFORM.GRID1.COLUMN3.HEADER1.CAPTION='流水号'

THISFORM.GRID1.COLUMN4.CONTROLSOURCE='sqluser.MUNAME'
THISFORM.GRID1.COLUMN4.WIDTH=100
THISFORM.GRID1.COLUMN4.HEADER1.FONTSIZE=9
THISFORM.GRID1.COLUMN4.HEADER1.ALIGNMENT=2
THISFORM.GRID1.COLUMN4.HEADER1.CAPTION='项目'
THISFORM.GRID1.COLUMN4.ALIGNMENT=3

THISFORM.GRID1.COLUMN5.CONTROLSOURCE='sqluser.MUUNIT'
THISFORM.GRID1.COLUMN5.WIDTH=25
THISFORM.GRID1.COLUMN5.HEADER1.FONTSIZE=9
THISFORM.GRID1.COLUMN5.HEADER1.ALIGNMENT=2
THISFORM.GRID1.COLUMN5.HEADER1.CAPTION='单位'
THISFORM.GRID1.COLUMN5.ALIGNMENT=3

THISFORM.GRID1.COLUMN6.CONTROLSOURCE='sqluser.PRICE'
THISFORM.GRID1.COLUMN6.ALIGNMENT=3
THISFORM.GRID1.COLUMN6.WIDTH=50
THISFORM.GRID1.COLUMN6.HEADER1.FONTSIZE=9
THISFORM.GRID1.COLUMN6.HEADER1.ALIGNMENT=2
THISFORM.GRID1.COLUMN6.HEADER1.CAPTION='单价'
THISFORM.GRID1.COLUMN6.FORMAT='ZR'
THISFORM.GRID1.Column6.InputMask='999.9'

WITH THISFORM.GRID1.COLUMN2
.ADDOBJECT('add1','calledit')
.CURRENTCONTROL='add1'
.add1.VISIBLE=.T.
ENDWITH

THISFORM.GRID1.COLUMN2.add1.CAPTION=''
THISFORM.GRID1.COLUMN2.Sparse=.F.
THISFORM.GRID1.COLUMN2.READONLY=.F.
THISFORM.GRID1.COLUMN2.BACKCOLOR=RGB(236,233,216)
THISFORM.GRID1.REFRESH
THISFORM.GRID1.AfterRowColChange()
************
ADD1.CLICK()
do form form2.scx
都市夜猫 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 firstxinjie 的回复:]
嘿嘿,白猫黑猫论。
[/Quote]
在 addobject 之前先用 pemstate() 或 vartype() 判断一下当然可以。
问题是我看这代码,只要 timer1 的定时一到,总是要调用 thisform.init ?跟点不点 add1 打开 form2,以及楼主想“调用新的表单时就别刷新”似乎没什么关系
firstxinjie 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dkfdtf 的回复:]
愣是没看懂!刷新干哈要调用表单 init ?

[/Quote]

嘿嘿,白猫黑猫论。
firstxinjie 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 dominicwang 的回复:]
A MEMBER OBJECT WITH THISNAME ALREADY EXISTS
[/Quote]

同名对象已存在。



在动态添加对象前,判断一下即可。
都市夜猫 2009-09-16
  • 打赏
  • 举报
回复
愣是没看懂!刷新干哈要调用表单 init ?
内容概要:本文聚焦于“含虚拟惯量阻尼的大功率并网逆变器VSG控制策略与仿真验证”,系统研究虚拟同步发电机(VSG)技术在大功率并网逆变器中的应用,旨在提升新能源并网系统的动态响应能力与运行稳定性。通过引入虚拟惯量与虚拟阻尼控制机制,使逆变器能够模拟传统同步发电机的惯性与阻尼特性,有效应对电网频率波动和负载突变带来的冲击。文档深入剖析了VSG的核心控制原理,包括有功-频率、无功-电压的下垂控制模型,并基于Simulink平台构建完整的系统仿真模型,对不同工况下的动态性能进行仿真分析与验证,充分展示了VSG在提升并网系统稳定性、增强电网支撑能力方面的优越性。; 适合人群:具备电力电自动控制理论及新能源并网技术背景,从事电气工程、可再生能源系统仿真与控制研究的研究生、科研人员以及相关领域的工程技术人员。; 使用场景及目标:① 掌握VSG控制策略在大功率并网逆变器中的具体实现方法与参数设计流程;② 学习基于Simulink搭建高保真度并网逆变器动态仿真模型的技术路径;③ 深入探究虚拟惯量与虚拟阻尼对改善电网频率响应、抑制功率振荡的作用机理,服务于微电网、高比例可再生能源接入等复杂电力系统的稳定性优化与控制策略研究。; 阅读建议:建议结合提供的Simulink仿真文件同步操作,重点关注VSG控制环路的结构设计与关键参数(如虚拟惯量、阻尼系数)的整定方法,通过设置不同的电网扰动工况(如负载切换、频率突变)观察系统响应特性,从而深入理解VSG的动态调节机制与控制优势。同时可参考文中涉及的其他电力系统控制案例,拓展对现代智能电网综合控制策略的认知视野。

2,749

社区成员

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

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