| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2458 人关注过本帖
标题:这个算动态吗?
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 49楼 TonyDeng
为了显示 结果 我把你的程序稍作了修改 基本上能理清了
不过就是那个Valid事件没搞懂 按理说TextBox是空的话 焦点就还在他上面 不空就焦点跑走
那为什么我输入0后提示一个无效的输入 然后就关不掉这个窗口? 我ALT + CTRL + DEL 了好多次啊

程序代码:
Clear All
Main()

Procedure Main()
    Local lo_MainForm

    lo_MainForm = NewObject("C_Form")
    lo_MainForm.Show
    Read Events
    Return

EndProc


DEFINE CLASS C_Form AS Form
    AutoCenter = .T.
    Width = 600
    Height = 600
        PROCEDURE Init
            FOR i = 1 TO 8
                lc_Name = "xx" + TRANSFORM(i)
                This.AddObject(lc_Name, "myClass")
                WITH This.&lc_Name
                    .Caption = "Caption + " + TRANSFORM(i)
                    .Height = 20 + 5 * (i - 1)
                    .Top = .Height * (i - 1)
                    .Width = 300
                    .Visible = .T.
                    .Resize
                ENDWITH
            NEXT
        ENDPROC

    PROCEDURE Click
        ThisForm.SetAll("Caption", "bbb")
    ENDPROC

ENDDEFINE

DEFINE CLASS myClass AS Container
    Caption = ""
    ADD OBJECT Label1 AS Label WITH Caption = "aaa", Left = 10, Top = 0, Width = 40, Height = 20
    ADD Object TextBox1 AS TextBox with Left =200, value = 10, Top = 0, Width = 40, Height = 20

    PROCEDURE Resize
        WITH This
            .SetAll("Height", .Height)
        ENDWITH
    ENDPROC

    PROCEDURE TextBox1.Valid
    With This
        IF EMPTY(This.Value)
            RETURN .F.
        EndIf
        EndWith

    EndProc
   

    Procedure Destroy
        Clear Events
    EndProc


ENDDEFINE
---
图片附件: 游客没有浏览图片的权限,请 登录注册


梅尚程荀
马谭杨奚







                                                       
2012-09-23 23:44
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:3 
   PROCEDURE TextBox1.Valid
    With This
        IF EMPTY(This.Value)
            *RETURN .F.
           RETURN 0
        EndIf
        EndWith

    EndProc

坚守VFP最后的阵地
2012-09-24 00:00
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用sdta在2012-9-24 00:00:42的发言:

呵呵 这么改输入0不会出现无效输入的提示 但是仍然关闭不了 窗口 。不理解其中的机理
 为什么有时候 窗口上面的X用不了?

梅尚程荀
马谭杨奚







                                                       
2012-09-24 09:03
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
    Procedure Destroy
        Clear Events
        ON SHUTDOWN QUIT &&退出VFP
    EndProc

或者加一个事件退出方法
    Procedure UNLOAD
        Clear Events
    EndProc

试一下上面两个方法单独用一个是否管用
可能与定义的变量未释放有关系。

[ 本帖最后由 bccn201203 于 2012-9-24 09:34 编辑 ]
2012-09-24 09:23
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 54楼 bccn201203
试了下 还是不成 on shutdown quit的quit是白色的 说明不是系统命令?

梅尚程荀
马谭杨奚







                                                       
2012-09-24 09:58
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
ON SHUTDOWN QUIT
我在代码中试了下可以用
用UNLOAD事件试试

    Procedure Destroy
        Clear Events
        QUIT &&退出VFP
    EndProc
QUIT 是VFP命令

[ 本帖最后由 bccn201203 于 2012-9-24 10:08 编辑 ]
2012-09-24 10:02
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 56楼 bccn201203
都试过了
只要把一个文本框的内容清空 按enter光标还在这个地方 出现一个0 这时是无法关闭窗口的
如果重新在这个文本框输入不是0的值 按enter 光标下移 而且这个能把窗口关掉 但是貌似出现没退出?
图片附件: 游客没有浏览图片的权限,请 登录注册



梅尚程荀
马谭杨奚







                                                       
2012-09-24 10:57
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
以下是引用有容就大在2012-9-24 10:57:11的发言:

都试过了
只要把一个文本框的内容清空 按enter光标还在这个地方 出现一个0 这时是无法关闭窗口的
如果重新在这个文本框输入不是0的值 按enter 光标下移 而且这个能把窗口关掉 但是貌似出现没退出?
TEXT1的值为空,程序肯定不让你退出
PROCEDURE DESTROY
CLEAR EVENTS
QUIT
ENDPROC


2012-09-24 11:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
在Valid事件中检查合法性,最好不要强制不能离开,换一种方式出提示,不用默认的那个。

授人以渔,不授人以鱼。
2012-09-24 12:10
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:3 
跟着各位大佬学习。
2012-09-24 13:16
快速回复:这个算动态吗?
数据加载中...
 
   



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

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