| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6170 人关注过本帖
标题:如果想运行一段程序期间弹出写有“请稍等”的表单,运行完成后“请稍等”自 ...
只看楼主 加入收藏
vfpp314
Rank: 1
等 级:新手上路
帖 子:46
专家分:5
注 册:2016-3-18
结帖率:66.67%
收藏
已结贴  问题点数:6 回复次数:32 
如果想运行一段程序期间弹出写有“请稍等”的表单,运行完成后“请稍等”自动消失,怎么写?
如果想运行一段程序期间弹出写有“请稍等”的表单,运行完成后“请稍等”自动消失,怎么写?

(1)在主表单,点击按钮,Click触发一个prg.

(2)prg运行的开始阶段,弹出一个表单,上面写“请等候”

(3)继续运行 prg的程序主体

(4)程序主体运行完成后,“请等候”表单自动消失,回到主表单。

[此贴子已经被作者于2016-3-30 20:36编辑过]

2016-03-30 20:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不需表单,用wait指令

授人以渔,不授人以鱼。
2016-03-30 20:55
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:1 
WAIT WINDOWS "正在处理,请等待......"  AT 20,50 TIMEOUT 60  &&等待60秒
2016-03-30 22:31
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
用 Wait 好像不是最理想:

1. 如果用 TimeOut 子句的,时间系数不是定长,而且 TimeOut 是同步方式;
2. 如果用 NoWaitt 子句的,虽然是异步方式,但一旦动一下鼠标或键盘,提示会消失。

[此贴子已经被作者于2016-3-30 22:46编辑过]


民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-03-30 22:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
wait window nowait
继续执行
wait clear 取消提示

授人以渔,不授人以鱼。
2016-03-30 22:43
hdlxdl
Rank: 1
等 级:新手上路
帖 子:12
专家分:1
注 册:2011-6-13
收藏
得分:1 
prg运行的开始阶段,加一语句thisform.label.caption=“请等候”

 继续运行 prg的程序主体

 程序主体运行完成后,语句改为thisform.label.caption=“已完成”或thisform.label.caption=“”
2016-03-31 02:34
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:1 
用表单,玩个性、玩创意,还可以显示进度条,用“非模式”或“顶层”表单可以。

2016-03-31 07:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
示例
程序代码:
** test.prg
of = CREATEOBJECT("form1")
of.show
READ EVENTS
CLEAR ALL 
RETURN

DEFINE CLASS form1 as Form
    ShowWindow = 2
    Top = 200
    Left = 300
    
    ADD OBJECT cmd1 as commandbutton WITH top=10,left=10,caption="Test"
    ADD OBJECT edit1 as editbox WITH top=40,left=10,height=200
    
    PROCEDURE cmd1.click
        LOCAL of2
        of2 = CREATEOBJECT("form2")
        of2.show
        FOR i = 1 TO 10
            of2.ddProgress = i/10
            thisform.edit1.SelText = TRANSFORM(i)+0h0D0A
            INKEY(1)
        ENDFOR
        *IF VARTYPE(of2) == "O"
        *    of2.release
        *ENDIF
    ENDPROC

    PROCEDURE Unload
        CLEAR EVENTS 
    ENDPROC
ENDDEFINE

DEFINE CLASS form2 as Form
    ShowWindow = 1
    DeskTop = .T.
    AutoCenter = .T.
    Width = 300
    Height = 100
    
    ddProgress = 0
    
    ADD OBJECT label1 as label WITH top=20,left=20,autosize=.T.,caption="请稍等......"
    ADD OBJECT Shape1 AS Shape WITH top=50,left=20,height=25,width=this.Width-40
    ADD OBJECT Shape2 AS Shape WITH top=50,left=20,height=25,Width=0,BackColor=0xFA9632,BorderStyle=0
    
    FUNCTION ddProgress_Assign(vNewVal)
        IF BETWEEN(vNewVal, 0, 1)
            this.Shape2.Width = this.Shape1.Width * vNewVal
        ENDIF
    ENDFUNC
ENDDEFINE
2016-03-31 08:01
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:1 
1. 设计一个表单 ProgressBar.scx,属性如下:
   AlwaysOnTop = .t.  && 位于顶层,防止被其他窗口遮挡
   AutoCenter = .t.   && 自动居中
   BorderStyle = 1    && 单线边框
   DeskTop = .t.      && 不受 Screen 大小限制,可位于 Screen 之外
   TitleBar = 0       && 无标题栏
   Height = 36
   Width = 372
2. 在表单上添加一个标签 lblPrompt,用于显示提示信息
3. 在 Form.Init 事件中设置标签属性:
   LPARAMETERS tcPrompt    && 显示字符串
   IF EMPTY(tcPrompt)
    tcPrompt = '正在处理,请稍候……'
   ENDIF
   WITH THIS.lblPrompt
        .Caption = tcPrompt
        .Left = 0
        .Width = THIS.Width
        .Alignment = 2
        .Top = (THIS.Height - .Height)/2
   ENDWITH
4. 定义一个全局变量 goProgress
5. 显示提示窗口:
   DO FORM ProgressBar WITH "正在计算工资,请稍候……" NAME goProgress
6. 关闭提示窗口:
   goProgress.Release

如果再复杂一点,还可以在窗口上显示动画、标签支持多行文本、单击表单手动关闭提示窗口……
   

泉城飞狐
2016-03-31 08:54
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
Clear
=WaitBox()
lcText = "█"
@ 10, 10 Say "-->"
For I = 1 To 10  && 长时间的循环/运算/备份/下载等的操作
    =Inkey(1)
    ?? lcText
Endfor
? "结束。"
Release Window Wparent


Function WaitBox
    Define Window Wparent ;
        FROM 0, 0 To 5, 50 ;
        Font "宋体", 12 Style "BT" ;
        DOUBLE Color Scheme 7
    Move Window Wparent Center
    Activate Window Wparent
    @ 2, 2 Say "正在处理数据,请稍等片刻......"
    Activate Screen
Endfunc

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-03-31 09:31
快速回复:如果想运行一段程序期间弹出写有“请稍等”的表单,运行完成后“请稍等 ...
数据加载中...
 
   



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

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