| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1354 人关注过本帖
标题:请教:表单显示的顺序和方法问题
只看楼主 加入收藏
寻H不得
Rank: 4
等 级:业余侠客
威 望:1
帖 子:181
专家分:222
注 册:2010-10-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
请教:表单显示的顺序和方法问题
我的登录界面想实现如下功能:
当程序启动时,主表单和登录界面都显示出来,但登录界面在顶层,估计是windowtype=1(模式),根据登录情况决定主表单中的各项功能、权限,或者退出。而且只能先在登录表单上操作。
图片附件: 游客没有浏览图片的权限,请 登录注册

     (如果单是先运行登录界面,然后出现登录界面,可以很顺利做出来。)
    见到别人可以做出上面这个效果,我也想啊,可是弄了老半天,都不行。
   在主表单的Active事件中 do form 登录表单  &&登录表单windowtype=1(模式)或者0不行,showwindow=1,2都不行
然后将两个表单装入一个表单集中,好像也弄不出来预期效果,请高手指点。
搜索更多相关主题的帖子: 登录界面 而且 
2011-08-12 22:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
关键是登录窗体的WindowType=1,如果子窗体中没有设置这个属性,可以在调用时用Show(1),同样的效果。这叫“模式表单”,只有结束这个表单后才能进入下一步。

主表单是顶层表单ShowWindow=2,子表单必须是ShowWindow=1的子窗体,在子窗体中同时设WindowType=1,两者必须同时存在。在启动主窗体之后再启动登陆窗体,顺序不要错了。

[ 本帖最后由 TonyDeng 于 2011-8-12 22:57 编辑 ]

授人以渔,不授人以鱼。
2011-08-12 22:53
寻H不得
Rank: 4
等 级:业余侠客
威 望:1
帖 子:181
专家分:222
注 册:2010-10-9
收藏
得分:0 
问题上在哪个事件中运行?
我在主窗体的ACtive事件中运行登录窗体 结果不行
2011-08-12 23:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
应在主窗体的Activate事件中动态载入子表单,不是在这里DO FORM 子表单。

授人以渔,不授人以鱼。
2011-08-12 23:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你们喜欢用DO FORM命令,用鼠标指指点点建立窗体的模式,很多东西是做不到的。我做这种模式的东西从来没遇到过麻烦。

授人以渔,不授人以鱼。
2011-08-12 23:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
晚点我把你上面的画面实现了看看

授人以渔,不授人以鱼。
2011-08-12 23:18
寻H不得
Rank: 4
等 级:业余侠客
威 望:1
帖 子:181
专家分:222
注 册:2010-10-9
收藏
得分:0 
动态载入表单?这个没用过,难吗?
唉 这个习惯的 麻烦
2011-08-12 23:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
SET TALK OFF
PUBLIC glLogin AS Boolean
glLogin = .F.
PUBLIC glSuccess AS Boolean
glSuccess = .F.
Form1 = CREATEOBJECT("C_Form1")
Form1.Show
READ EVENTS
RETURN

DEFINE CLASS C_Form1 AS Form
    Caption = "Form1"
    ShowWindow = 2
    Width = 600
    Height = 400
    AutoCenter = .T.

    ADD OBJECT Command1 AS CommandButton WITH Caption = "录入", Height = 25, Width = 60, Top = 20, Left = 20, Enabled = .F.
    ADD OBJECT Command2 AS CommandButton WITH Caption = "借出", Height = 25, Width = 60, Top = 50, Left = 20, Enabled = .F.
    ADD OBJECT Command3 AS CommandButton WITH Caption = "还回", Height = 25, Width = 60, Top = 80, Left = 20, Enabled = .F.
    ADD OBJECT Command4 AS CommandButton WITH Caption = "查阅", Height = 25, Width = 60, Top = 120, Left = 20, Enabled = .F.
    ADD OBJECT Command5 AS CommandButton WITH Caption = "关闭", Height = 25, Width = 60, Top = 360, Left = 20

    PROCEDURE Activate
        IF !glLogin
            glLogin = .T.
            LOCAL frm_Login AS Object
            frm_Login = CREATEOBJECT("C_Login")
            frm_Login.Show
            IF glSuccess
                ThisForm.SetAll("Enabled", .T., "CommandButton")
            ENDIF
        ENDIF
    ENDPROC

    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC

    PROCEDURE Command5.Click
        RELEASE ThisForm
    ENDPROC

ENDDEFINE

DEFINE CLASS C_Login AS Form
    Caption = "登录界面"
    ShowWindow = 1
    WindowType = 1
    Width = 300
    Height = 120
    ControlBox = .F.
    AutoCenter = .T.

    ADD OBJECT Label1 AS Label WITH Caption = "请输入用户名: ", Alignment = 1, Height = 25, Width = 100, Top = 20, Left = 20
    ADD OBJECT Text1 AS TextBox WITH Value = "", Height = 25, Width = 150, Top = 20, Left = 120
    ADD OBJECT Label2 AS Label WITH Caption = "请输入密码口令: ", Alignment = 1, Height = 25, Width = 100, Top = 50, Left = 20
    ADD OBJECT Text2 AS TextBox WITH Value = "", PasswordChar = "*", Height = 25, Width = 150, Top = 50, Left = 120
    ADD OBJECT Command1 AS CommandButton WITH Caption = "确定登录", Height = 25, Width = 60, Top = 80, Left = 60
    ADD OBJECT Command2 AS CommandButton WITH Caption = "关闭退出", Height = 25, Width = 60, Top = 80, Left = 130

    PROCEDURE Command1.Click
        glSuccess = (ALLTRIM(ThisForm.Text2.Value) == "Admin")
        RELEASE ThisForm
    ENDPROC

    PROCEDURE Command2.Click
        RELEASE ThisForm
    ENDPROC

ENDDEFINE 


[ 本帖最后由 TonyDeng 于 2011-8-13 12:38 编辑 ]

授人以渔,不授人以鱼。
2011-08-13 07:15
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:7 
我原来是在主表单的active事件中加了一个判断,若尚未登录就启动登录表单,登录表单是模式表单,只有登录结束之后主表单才能操作。后来发现这种效果不好,新用户若想看看帮助或其他内容都无法进行。我现在是在主菜单上设置一个登录选项,用户需要登录时选取这个选项进入登录窗口,不想登录则可以进行其他允许的操作(如观看程序说明、帮助文件或版权声明等)。用户登录后,主菜单上的这个选项就改为结束操作,用户可以结束操作之后重新登录。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-08-13 08:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
回复 9楼 hu9jj
是的,这个模式(点击登录)比较合理。

授人以渔,不授人以鱼。
2011-08-13 12:33
快速回复:请教:表单显示的顺序和方法问题
数据加载中...
 
   



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

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