| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1047 人关注过本帖
标题:遇到一个无法关闭窗体的问题,请坛主和各位高手指教.
只看楼主 加入收藏
kongxc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:104
注 册:2007-9-30
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:12 
遇到一个无法关闭窗体的问题,请坛主和各位高手指教.
我只是为了学习绑定事件的方法,试着写个嵌入桌面的日历,这个日历窗体上的标签之方法是用BINDEVENT()函数绑定的,如果窗体的SHOWWINDOW=0时一切正常,但如果将SHOWWINDOW=2时,启动窗体后,即时退出也正常.但只要将鼠标移动到任何一个标签上(标签会自动显示这天的记事等信息)后,再想退出这个窗体就不可能了.即:对象.release失效了..只有CLEAR ALL才能关闭它.我现将原程序放上来,请各位高手帮忙看看..
桌面日历.zip (10.52 KB)
此附件已更新为完整包

[ 本帖最后由 kongxc 于 2014-6-23 17:30 编辑 ]
搜索更多相关主题的帖子: release 标签 日历 信息 
2014-06-23 11:11
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
还会出现这种情况?
2014-06-23 11:42
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:0 
我的测试结果是:将鼠标指针移动到“23”上,没有任何信息显示,然后双击“2014年6月月历表”表单可正常关闭。不知我的操作与楼主的操作是否一致?

泉城飞狐
2014-06-23 11:49
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
测试结果:关闭正常 没什么问题
2014-06-23 14:35
kongxc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:104
注 册:2007-9-30
收藏
得分:0 
怪我没把数据传完整,当前月历表没有记事数据,不会出现问题.月历表有记事数据后才会有标签(绑定方法)出现,把我传的编辑表单放在一起,然后在任意某日双击左键,会出现菜单,选第一项,写些记事内容进去,可以多写几日,然后退出重新运行,就会看到黄底的日子,那就是有记事的日,再把鼠标移上去就能看见你写的内容..然后再退出窗体吧....
myedit1.zip (2.57 KB)
2014-06-23 14:38
kongxc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:104
注 册:2007-9-30
收藏
得分:0 
这只是我初步的设计桌面日历,计划是在日历上再显示农历,在桌面日历上可以写日记和提醒,现在出现了无法退出这个窗体的情况,但可以隐藏或重新显现.当出现这个问题时,我用API函数方法也无法关闭,看来与绑定方法有关,只有在运行绑定事件后才会出现无法退出的情况,不知道我在绑定的鼠标移动事件中那个地方没写对,自已检查不出来,请老师们帮忙指教.
2014-06-23 14:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:0 
初试 form 的 Init 事件好像有点问题:BINDEVENT()调用未被执行?

nh1=thisform.grid1.column1.Width
*thisform.width=nh1*7+4
thisform.height=RECCOUNT()*18+38
cts(9)=cts(9)-thisform.Width
thisform.Left=cts(9)
thisform.Top=2
thisform.label2.Left = 12
thisform.label2.Top = 1
thisform.label2.Caption = cts(1)
thisform.grid1.top=18
thisform.grid1.left=2
thisform.grid1.height=thisform.height-2
thisform.grid1.width=thisform.width-2
STORE 0 to nr1,nr2,nr3,nn1,nn2,nn3,nn4
nn5=2
SCAN while .not. EOF()
nn1=nn1+1
FOR nn2=1 to 7
ccm1="dow"+TRANSFORM(nn2)
IF EMPTY(EVALUATE(ccm1))
LOOP
ENDIF
ccm2="dts"+TRANSFORM(nn2)
ccm3="djs"+TRANSFORM(nn2)
nn3=IIF(EMPTY(EVALUATE(ccm2)),0,RGB(255,0,0))
nn4=IIF(EMPTY(EVALUATE(ccm3)),0,RGB(255,255,128))
IF nn3=nn4
LOOP
ENDIF

MESSAGEBOX("到此已经跳出循环体,循环体内以下代码未被执行")

......
......
2014-06-23 15:11
kongxc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:104
注 册:2007-9-30
收藏
得分:0 
你说的对,当DTSn和DJSn均为空时,也就是说月历表没有节日也没有记事提醒时,该循环体后面的代码不会被执行,因为这个循环体是用来建立有提醒信息的Label标签及标签内的事件绑定用的...有了这些事件绑定以及这些绑定被执行后,为什么会导致窗体无法释放及关闭...
2014-06-23 16:20
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:0 
mydatemenu.prg
出错提示:mydates 不是一个对象

*列表框右键菜单
PARAMETERS mrow1,mcol1
IF EMPTY(POPUP())=.f.
RETURN
ENDIF
DEFINE POPUP popdeb SHORTCUT RELATIVE FROM mrow1,mcol1
*DEFINE BAR 1 OF popdeb PROMPT '查阅工作记事'
DEFINE BAR 1 OF popdeb PROMPT '编辑日历记事'
DEFINE BAR 2 OF popdeb PROMPT '\-'
DEFINE BAR 3 OF popdeb PROMPT '收起桌面日历'
DEFINE BAR 4 OF popdeb PROMPT '关闭桌面日历'
ON SELECTION POPUP popdeb DO daterun WITH BAR()
ACTIVATE POPUP popdeb
RETURN
*处理以上菜单
FUNCTION daterun
LPARAMETERS mpop1
SELECT wda1
do case
CASE mpop1=1
do form myedit1 with cts(4)
CASE mpop1=3
CloseWindow(cts(1))
CASE mpop1=4
*mydates.Hide

mydates.release    && 这句出错提示:mydates 不是一个对象

ENDCASE
DEACTIVATE POPUP popdeb
RELEASE POPUP popdeb
RETURN
ENDFUNC
2014-06-23 16:52
kongxc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:104
注 册:2007-9-30
收藏
得分:0 
9楼说得对,就是这位老师说的这个错误..这句就是释放窗体用的,这时即使在表单中用thisform.release虽然不出现错误提示,但也不能释放窗体,不会有任何作用.这个问题是怎么造成的,请各位老师帮助分析一下,谢谢.
2014-06-23 17:14
快速回复:遇到一个无法关闭窗体的问题,请坛主和各位高手指教.
数据加载中...
 
   



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

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