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

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 10:58
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 3楼 sdta
图片附件: 游客没有浏览图片的权限,请 登录注册


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

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

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 11:03
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 7楼 TonyDeng
左边看着窗体的属性   右边改写成代码   


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

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 11:17
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 8楼 吹水佬
我在main.prg里  声明一个公共类  里面有clear events

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 12:07
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 5楼 TonyDeng
先是登录验证窗口,如果密码输入对了,就进入主程序窗口

我感觉没反呀

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 12:15
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
用表单设计器画程序    和用代码写程序    思路完全很不同啊  …………

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 12:37
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 18楼 TonyDeng
谢谢你的提示   在你的基础上改了一下 

程序代码:
SET PATH TO "..\MyTools"
SET PROCEDURE TO "MyForm"
oMainForm = CREATEOBJECT("C_MainForm")
oMainForm.startLoginForm
READ EVENTS
RETURN 

DEFINE CLASS C_MainForm AS MyForm
    Caption = "主窗体"
    ShowWindow = 2
    Width = 600
    Height = 400
    AutoCenter = .T.
    
    ADD OBJECT cmdLogin AS CommandButton WITH Caption = "登录", Width = 100, Height = 25
    
    PROCEDURE Arrange
        WITH This.cmdLogin
            .Top = (This.Height - .Height) / 2
            .Left = (This.Width - .Width) / 2
        ENDWITH 
    ENDPROC 
    
    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC 
    
    PROCEDURE startLoginForm
        LOCAL loLogin
        loLogin = CREATEOBJECT("C_Login")
        loLogin.show 
    ENDPROC 
    
ENDDEFINE 

DEFINE CLASS C_Login AS MyForm
    Caption = "登陆"
    ShowWindow = 1
    WindowType = 1
    Width = 300
    Height = 200
    AutoCenter = .T.
    
    PROCEDURE Destroy
        oMainForm.show 
        * 重写Destroy否决父类中默認CLEAR EVENTS的动作
    ENDPROC 
    
ENDDEFINE 

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 13:29
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 23楼 TonyDeng
我也刚想问同样的问题   看到一个VFP的帮助文档   也没看太懂    看到你的解释    我懂了一点点   以后在程序中多用几次    可能明白更多些

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 14:03
快速回复:我又迷糊了!
数据加载中...
 
   



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

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