| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2277 人关注过本帖
标题:我又迷糊了!
只看楼主 加入收藏
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
结帖率:91.53%
收藏
已结贴  问题点数:100 回复次数:30 
我又迷糊了!
程序代码:
&&main.prg

SET TALK OFF
SET ECHO OFF
SET DATE TO ansi
SET ESCAPE ON
SET SAFETY OFF
SET EXACT OFF
SET DELETED ON
SET CENTURY ON
CLOSE ALL
CLEAR ALL
&&_screen.Visible= .F.  &&在config.fpw中用SCREEN=OFF代替了
PUBLIC currUser &&,userPerm 登录用户权限
PUBLIC myDrv,myDir,myProgPath &&当前程序所在盘和所在路径
myDrv=SYS(5)
myDir=SYS(2003)
myProgPath=myDrv+myDir
SET DEFAULT TO &myProgPath
DO 登录验证.prg
&&READ events

DEFINE CLASS showWindowForm as Form 
    showWindow=2
    
    PROCEDURE destroy
        CLEAR EVENTS 
    ENDPROC 
    
ENDDEFINE


DEFINE CLASS exitBtn as CommandButton 
    
    PROCEDURE click
        RELEASE thisform 
    ENDPROC 
ENDDEFINE 

————————————————————————
程序代码:
&&登录验证.prg

USE 授权用户

loginForm=CREATEOBJECT("logForm")
    WITH loginForm
        .caption="欢迎登录材料管理系统"
        .autoCenter=.t.
        .width=300
        .height=200
        .titleBar=0
        &&.showWindow=2  写在这里不行
        .picture="登录背景.bmp"
        .icon="logo.ico"
        .controlBox=.f.        
        .show
    ENDWITH
READ EVENTS
RETURN 

DEFINE CLASS logForm as showWindowForm
    ADD OBJECT cmdExit as exitBtn WITH top=168,left=228,height=25,width=60,caption="退 出"
    ADD OBJECT cmdLogin as loginBtn
    ADD OBJECT userNameCombo as logCbx
    ADD OBJECT passwordCheck as logPass
    ADD OBJECT lbl1 as Label WITH caption="水电工程处",;
        alignment=2,;
        backStyle=0,;
        fontSize=16,;
        foreColor=RGB(0,0,0),;
        height=24,;
        left=48,;
        top=12,;
        width=204
    
    ADD OBJECT lbl2 as Label WITH caption="材料管理系统",;
        alignment=2,;
        backStyle=0,;
        fontSize=18,;
        foreColor=RGB(0,0,0),;
        height=24,;
        left=63,;
        top=48,;
        width=174

    ADD OBJECT lbl3 as Label WITH caption="用户名:",;
        backStyle=0,;
        fontSize=12,;
        foreColor=RGB(0,0,0),;
        height=24,;
        left=24,;
        top=84,;
        width=60
        
    ADD OBJECT lbl4 as Label WITH caption="密 码:",;
        backStyle=0,;
        fontSize=12,;
        foreColor=RGB(0,0,0),;
        height=24,;
        left=24,;
        top=132,;
        width=60

ENDDEFINE

DEFINE CLASS loginBtn as CommandButton
    top=168
    left=144
    height=25
    width=60
    caption="登 录"
    PROCEDURE init
        PUBLIC testLoginCount
        testLoginCount=3
    ENDPROC 
    
    PROCEDURE click
        IF ALLTRIM(thisform.userNameCombo.Value)==ALLTRIM(授权用户.用户名) ;
            AND ALLTRIM(thisform.passwordCheck.value)==ALLTRIM(授权用户.密码)
            currUser=ALLTRIM(授权用户.用户名)
            thisform.Release
            DO 主程序.prg
        ELSE
            testLoginCount=testLoginCount-1
            IF testLoginCount=0
                MESSAGEBOX("尝试登录过于频繁,程序将退出!如有问题,请联系程序管理员!",64,"非法登录警告!")
                thisform.Release
                CLEAR EVENTS
            ELSE
                msgText="用户名或密码错误,你还有"+ALLTRIM(STR(testLoginCount))+"次机会!"
                =MESSAGEBOX(msgText,64,"重试登录")
                thisform.passwordCheck.Value=""
                thisform.passwordCheck.SetFocus()
            ENDIF
        ENDIF
ENDDEFINE 

DEFINE CLASS logCbx as ComboBox 
    left=96
    top=84
    width=156
    height=24
    fontSize=12
    rowSource="授权用户.用户名"
    rowSourceType=6
ENDDEFINE 

DEFINE CLASS logPass as TextBox
    passwordChar="."
    left=96
    height=24
    top=132
    width=156
    fontSize=24
ENDDEFINE 

————————————————————————————————————
程序代码:
&&主程序.prg

mainForm=CREATEOBJECT("mForm")
    WITH mainForm
        .caption="水电工程处材料管理系统"
        .autoCenter=.t.
        .borderStyle=2
        .icon="logo.ico"
        .picture="主背景.bmp"
        .height=550
        .width=770
        .maxButton=.f.
        .show
    ENDWITH 
READ EVENTS
RETURN 

DEFINE CLASS mForm as showWindowForm
    ADD OBJECT cmdExit as exitBtn WITH caption="退出系统",top=504,left=108,height=25,width=60
    
ENDDEFINE 
        
&&加入下面的代码,这个表单可以独立运行。。。。。。。。。
*!*    DEFINE CLASS showWindowForm as Form     
*!*        showWindow=2
*!*        
*!*        PROCEDURE destroy
*!*            CLEAR EVENTS 
*!*        ENDPROC 
*!*        
*!*    ENDDEFINE

*!*    DEFINE CLASS exitBtn as CommandButton 
*!*        
*!*        PROCEDURE click
*!*            RELEASE thisform 
*!*        ENDPROC 
*!*    ENDDEFINE 



输入密码  登录后  主程序窗口不见了   什么情况?


是不是表单类之间的关系  我没弄明白啊???????
2015-12-08 09:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
逻辑不清

授人以渔,不授人以鱼。
2015-12-08 10:46
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
还是现实点吧

坚守VFP最后的阵地
2015-12-08 10:52
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 2楼 TonyDeng
哪里出的错呢?

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 10:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
首先,不用多次READ EVENTS,也不应交错CLEAR EVENTS,你调用窗体的顺序是错乱的。逻辑上,是从主窗口启动次窗口,你是反过来。

[此贴子已经被作者于2015-12-8 11:07编辑过]


授人以渔,不授人以鱼。
2015-12-08 11:02
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 3楼 sdta
图片附件: 游客没有浏览图片的权限,请 登录注册


就想学明白点   在WIN7上虚拟了个2003    先做出窗体     再虚拟个XP      对着窗体和控件的属性写成代码的

我容易嘛!!!!   …………     你还打击我

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 11:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你虚拟机玩上瘾了,vfp可在任何Windows上运行,要虚拟来虚拟去干嘛。

授人以渔,不授人以鱼。
2015-12-08 11:05
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:10 
loginForm=CREATEOBJECT("logForm")
......
READ EVENTS ......这时进入loginForm的消息循环
应该在loginForm释放时:
PROCEDURE destroy
   CLEAR EVENTS
ENDPROC
这样就明确了
2015-12-08 11:05
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 7楼 TonyDeng
左边看着窗体的属性   右边改写成代码   


不然   还要切换来切换去的    太麻烦  

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 11:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 9楼 不懂才问
帮助里面有屬性和事件、方法列表。

授人以渔,不授人以鱼。
2015-12-08 11:33
快速回复:我又迷糊了!
数据加载中...
 
   



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

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