使用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 有没有可以设置,用户在操作或调用新的表单时就别刷新??????
...全文
101 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 ?

2,718

社区成员

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

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