标题:求助:窗口被覆盖的问题
只看楼主
ZHUHQ2020
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2020-4-28
结帖率:66.67%
已结贴  问题点数:10 回复次数:8 
求助:窗口被覆盖的问题
做了个画折线图的程序,在VF主窗口下调用,窗口在调用表单上面,显示符合我的要求,但在自定义的顶层表单里调用的时候,就显示不出来了,应该是被覆盖了。SHOWWINDOW在运行时不让改,ALWAYSONTOP设置了也没用,请各位大拿指点指点。
下面是PRG内容:

PROCEDURE QIUZTX
PARAMETERS MEMQIUZGZQ,MEMCKTOP,MEMCKLEFT
QFORM = CREATEOBJECT('Form')  
QFORM.TOP=MEMCKTOP
QFORM.LEFT=MEMCKLEFT
QFORM.ALWAYSONTOP=.T.
QFORM.WIDTH = 426
QFORM.HEIGHT = 200
QFORM.BACKCOLOR=RGB(0,0,0)
QFORM.BORDERSTYLE=1
QFORM.CLOSABLE=.F.
QFORM.MAXBUTTON=.F.
QFORM.MINBUTTON=.F.
QFORM.TITLEBAR=0
QFORM.AddObject('cmdCmndBtn1','cmdMyCmndBtn1')  
QFORM.ADDOBJECT('LABEL1','LABEL')
QFORM.LABEL1.CAPTION='QIUZ(14,6)'
QFORM.LABEL1.TOP=2
QFORM.LABEL1.LEFT=5
QFORM.LABEL1.HEIGHT=22
QFORM.LABEL1.WIDTH=100
QFORM.LABEL1.BACKSTYLE=0
QFORM.LABEL1.FORECOLOR=RGB(255,255,255)
QFORM.LABEL1.BACKCOLOR=RGB(0,0,0)
QFORM.LABEL1.VISIBLE=.T.
 Dimension MEMZUOB[60,8]
 MEMXS=7
   STORE 0 TO MEMZUOB
   SELECT &MEMQIUZGZQ
   GO BOTT
   MEMQIUZJL1=RECNO()
   SKIP -59
   MEMQIUZJL=RECNO()
   GO MEMQIUZJL
   FOR MEMLSJS=1 TO 60 STEP 1
      MEMZUOB[MEMLSJS,1]=MEMLSJS*MEMXS
      MEMZUOB[MEMLSJS,2]=200-INT(QIUZD*2)
      SKIP
   NEXT
   GO MEMQIUZJL
   FOR MEMLSJS=1 TO 60 STEP 1
      MEMZUOB[MEMLSJS,3]=MEMLSJS*MEMXS
      MEMZUOB[MEMLSJS,4]=200-INT(QIUZI*2)
      SKIP
   NEXT
   GO MEMQIUZJL
   FOR MEMLSJS=1 TO 60 STEP 1
      MEMZUOB[MEMLSJS,5]=MEMLSJS*MEMXS
      MEMZUOB[MEMLSJS,6]=200-INT(QIUZA*2)
      SKIP
   NEXT
   GO MEMQIUZJL
   FOR MEMLSJS=1 TO 60 STEP 1
      MEMZUOB[MEMLSJS,7]=MEMLSJS*MEMXS
      MEMZUOB[MEMLSJS,8]=200-INT(QIUZR*2)
      SKIP
   NEXT
QFORM.AddObject('lin1','Line')
QFORM.lin1.Top =  200-100
QFORM.lin1.Left = 10
QFORM.lin1.Width = 426
QFORM.lin1.Height = 0
QFORM.LIN1.BorderStyle = 2
QFORM.LIN1.VISIBLE=.T.
QFORM.AddObject('lin2','Line')
QFORM.lin2.Top =  200-60
QFORM.lin2.Left = 10
QFORM.lin2.Width = 426
QFORM.lin2.Height = 0
QFORM.LIN2.BorderStyle = 2
QFORM.LIN2.VISIBLE=.T.


QFORM.cmdCmndBtn1.Visible =.T.  

QFORM.Show
QFORM.FORECOLOR=RGB(255,255,255)
FOR MEMLSJS=2 TO 60
QFORM.Line(MEMZUOB(MEMLSJS-1,1),MEMZUOB(MEMLSJS-1,2),MEMZUOB(MEMLSJS,1),MEMZUOB(MEMLSJS,2))
NEXT
QFORM.FORECOLOR=RGB(255,255,0)
FOR MEMLSJS=2 TO 60
QFORM.Line(MEMZUOB(MEMLSJS-1,3),MEMZUOB(MEMLSJS-1,4),MEMZUOB(MEMLSJS,3),MEMZUOB(MEMLSJS,4))
NEXT
QFORM.FORECOLOR=RGB(255,0,255)
FOR MEMLSJS=2 TO 60
QFORM.Line(MEMZUOB(MEMLSJS-1,5),MEMZUOB(MEMLSJS-1,6),MEMZUOB(MEMLSJS,5),MEMZUOB(MEMLSJS,6))
NEXT
QFORM.FORECOLOR=RGB(0,255,0)
FOR MEMLSJS=2 TO 60
QFORM.Line(MEMZUOB(MEMLSJS-1,7),MEMZUOB(MEMLSJS-1,8),MEMZUOB(MEMLSJS,7),MEMZUOB(MEMLSJS,8))
NEXT

READ EVENTS  
DEFINE CLASS cmdMyCmndBtn1 AS CommandButton  
   Caption = '\<Quit'  
   Cancel = .T.  
   Left = 5
   Top = 175  
   Height = 25  
   PROCEDURE Click
      CLEAR EVENTS  
ENDDEFINE
搜索更多相关主题的帖子: Line NEXT TOP FOR RGB 
2020-05-27 09:09
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
在项目文件夹中添加一个项目文件config.fpw,里面加一句SCREEN=OFF,试试看。
2020-05-27 09:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
当前表单设置为模式表单试试

坚守VFP最后的阵地
2020-05-27 09:34
ZHUHQ2020
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2020-4-28
得分:0 
回复 2楼 qiuxingce
原来就有,谢谢。
2020-05-27 09:42
ZHUHQ2020
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2020-4-28
得分:0 
回复 3楼 sdta
试了,两个问题:1、只剩两条横线,折线图画不出来了,2、退不出去了。2应该可以解决,1我在尝试直接重新做表单完成时,就出现了,还没找到原因和解决办法
2020-05-27 09:55
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
自定义一个FORM类
2020-05-27 11:56
ZHUHQ2020
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2020-4-28
得分:0 
回复 6楼 吹水佬
先谢吹版指点,我是从DBASE用上来的,真没用过类,网上资源也被百度搞的不象以前好找了,能厚颜请吹版或哪位大拿费心给个针对性的实例吗?
2020-05-27 13:32
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
以下是引用ZHUHQ2020在2020-5-27 13:32:30的发言:

先谢吹版指点,我是从DBASE用上来的,真没用过类,网上资源也被百度搞的不象以前好找了,能厚颜请吹版或哪位大拿费心给个针对性的实例吗?

你的代码就有自定义类:cmdMyCmndBtn1
没具体数据,模拟试试

QIUZTX("MEMQIUZGZQ", 100, 100)
CLEAR ALL
RETURN

PROCEDURE QIUZTX(MEMQIUZGZQ,MEMCKTOP,MEMCKLEFT)
    QFORM = CREATEOBJECT("myForm",MEMCKTOP,MEMCKLEFT)  
    QFORM.show
    READ EVENTS
    RELEASE QFORM
ENDPROC

DEFINE CLASS myForm as Form
    ALWAYSONTOP=.T.
    WIDTH = 426
    HEIGHT = 200
    BACKCOLOR=RGB(0,0,0)
    BORDERSTYLE=1
    CLOSABLE=.F.
    MAXBUTTON=.F.
    MINBUTTON=.F.
    TITLEBAR=0
    ShowWindow = 2
   
    ADD OBJECT cmdCmndBtn1 as cmdMyCmndBtn1
    ADD OBJECT LABEL1 as LABEL WITH CAPTION='QIUZ(14,6)',TOP=2,LEFT=5,HEIGHT=22,WIDTH=100,;
        BACKSTYLE=0,FORECOLOR=RGB(255,255,255),BACKCOLOR=RGB(0,0,0),VISIBLE=.T.
    ADD OBJECT lin1 as Line WITH Top=200-100,Left=10,Width=426,Height=0,BorderStyle=2,VISIBLE=.T.
    ADD OBJECT lin2 as Line WITH Top=200-60,Left=10,Width=426,Height=0,BorderStyle=2,VISIBLE=.T.

    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC

    PROCEDURE init(nTop,nLeft)
        this.Top = nTop
        this.Left = nLeft
    ENDPROC

    PROCEDURE Activate
        * SELECT (MEMQIUZGZQ)
        * 模拟数据
        this._Line(10, 100, 100, 50, 0xFF)
        this._Line(100, 50, 200, 100, 0xFF)
        this._Line(200, 100, 300, 50, 0xFF)
        this._Line(300, 50, 400, 100, 0xFF)
    ENDPROC
   
    PROCEDURE _Line(nX1, nY1, nX2, nY2, nColor)
        this.ForeColor = nColor
        this.Line(nX1, nY1, nX2, nY2)
    ENDPROC
ENDDEFINE
   
DEFINE CLASS cmdMyCmndBtn1 AS CommandButton  
    Caption = '\<Quit'  
    Cancel = .T.  
    Left = 5
    Top = 175  
    Height = 25  
    PROCEDURE Click
       thisform.release
    ENDPROC
ENDDEFINE
2020-05-27 16:28
ZHUHQ2020
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2020-4-28
得分:0 
回复 8楼 吹水佬
这太太太感谢了!
2020-05-27 16:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501814-1-1.html




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

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