CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  基础类

简单又简单,不知道你会不会。

楼主ylg007(你注意到早晨的霞光吗?)2001-07-15 15:33:03 在 PowerBuilder / 基础类 提问

如何实现不关闭当前窗口,就不能再打开另一个窗口。^-^ 问题点数:30、回复次数:22Top

1 楼ldy(罗大佑)回复于 2001-07-15 15:35:10 得分 0

不会  
  你不打开就不打开贝  
  呵呵  
  :)Top

2 楼xingjiaren(Sandy)回复于 2001-07-15 15:40:04 得分 0

我也不知道  
  窗口做成差/最大/最小都去掉的,呵呵Top

3 楼jakey_yang(飘剑)回复于 2001-07-15 15:42:15 得分 0

可以可以,只要一个数组就可以了。判断数组的上限,然后。。。。Top

4 楼hellon1(hellon)回复于 2001-07-15 15:44:06 得分 0

只要打开就可以了Top

5 楼Hanson_bati_zhu(欺世盗名之徒)回复于 2001-07-15 15:45:29 得分 2

你用的是MDI还是SDI?  
  Top

6 楼ylg007(你注意到早晨的霞光吗?)回复于 2001-07-15 15:49:07 得分 0

Hanson_bati_zhu(Hanson_bati_zhu)   
  我用的是mdi.  
  另一个问题:main类型的窗口是sdi的吗?Top

7 楼Hanson_bati_zhu(欺世盗名之徒)回复于 2001-07-15 16:02:13 得分 0

to:ylg007(棕子)  
  MDI是指多文档界面  
  SDI是指单文档界面  
   
  Top

8 楼Hanson_bati_zhu(欺世盗名之徒)回复于 2001-07-15 16:03:19 得分 0

你是不是要同时不能打开一个应用的多个实例?Top

9 楼ylg007(你注意到早晨的霞光吗?)回复于 2001-07-15 16:15:05 得分 0

to   Hanson_bati_zhu(Hanson_bati_zhu)   
  不好意思,表达不够清楚。  
  我是想在一个mdi窗口中只能打开一个main类型的窗口。Top

10 楼SOFTFUN_CSDN(不知所云~)回复于 2001-07-15 16:58:28 得分 0

最简单的方法:做个标记~~Top

11 楼Hanson_bati_zhu(欺世盗名之徒)回复于 2001-07-15 17:06:51 得分 0

试试  
  在菜单的脚本里写  
  window   win  
  win   =   create   child_1  
  if   find_sheet(win,parentwindow)   =   1   then   return  
  OpenSheet(child_1,   MDI_User,   2,   Original!)  
  把下面的代码存成find_sheet.srf  
  在库画笔里导入  
   
   
   
  $PBExportHeader$find_sheet.srf  
  $PBExportComments$打开Sheet窗口公用函数  
  global   type   find_sheet   from   function_object  
  end   type  
   
  forward   prototypes  
  global   function   integer   find_sheet   (window   open_sheet,   window   mdi_window)  
  end   prototypes  
   
  global   function   integer   find_sheet   (window   open_sheet,   window   mdi_window);window   win  
  string   ls_opensheet_title  
  ls_opensheet_title   =   open_sheet.title  
  destroy   open_sheet  
  win   =   mdi_window.getfirstsheet()  
  do   while   isvalid(win)   //   if   we   got   a   valid   sheet  
  if   win.title   =   ls_opensheet_title   then   return   1   //   if   the   titles   match   then   return   true  
  win   =   mdi_window.getnextsheet(win)   //   get   the   next   sheet  
  loop  
  return   -1  
  end   function  
   
   
   
  Top

12 楼Hanson_bati_zhu(欺世盗名之徒)回复于 2001-07-15 17:07:39 得分 0

SORRY!  
  审错题了8-(  
  上面当我没说  
  呵呵  
  8-)Top

13 楼susu_0807(苏苏)回复于 2001-07-15 17:09:13 得分 2

你到底想限制什么?  
  用作标记的办法也可以,不过要对所有的main窗口编程序,比较麻烦的(用继承会好一点).  
  Top

14 楼Hanson_bati_zhu(欺世盗名之徒)回复于 2001-07-15 17:12:09 得分 2

试试  
  在菜单的脚本里写  
  IF   IsValid(parentwindow.getfirstsheet())   THEN  
          RETURN  
  END   IF  
  OpenSheet(child_1,   MDI_User,   2,   Original!)  
  Top

15 楼net_fox(网狐)回复于 2001-07-15 18:17:49 得分 0

是啊,要看你想限制什么了,在主窗口的close事件中限制不就行了?这是最简单的方法了,限制主窗口未关闭,不允许打开下个窗口!脚本自己写一下啊!Top

16 楼ylg007(你注意到早晨的霞光吗?)回复于 2001-07-15 18:20:19 得分 0

to   net_fox  
  怎么写啊Top

17 楼lqh178()回复于 2001-07-15 18:28:48 得分 2

将窗口全部继承自一个祖先,然后在祖先中设置一个共享变量,在窗口的open事件中检测该共享变量,如果为初始值,表示为打开的第一个窗口,然后继续并通过函数修改之,这样在另一个打开窗口中检测该变量时便可知已经有了相应的窗口存在,在该窗口的open事件中这样写便应可以  
   
  if   get_totalwin()   =   0   then   //取共享变量  
        set_totalwin(1)                   //设置共享变量  
  else  
        close(this)  
        return  
  end   if  
  Top

18 楼Kanfu(无知者无畏)回复于 2001-07-15 18:56:24 得分 10

我不知道你为什么不把main类型的窗口该为response类型。你是不是指打开一个特定的sheet,就不能打开其他sheet?Top

19 楼pbworm(pb菜鸟)回复于 2001-07-15 20:53:16 得分 2

一个笨笨的办法,设置一个全局变量。在打开窗口之前判断一下这个全局变量的值,如果是1的话就不可以打开。打开窗口以后将这个变量设置为1,关闭以后将它设置为0就可以了。  
   
  太简单了,徒若各位大虾笑话了。Top

20 楼zxpcomeon(浪子想家)回复于 2001-07-15 21:45:56 得分 0

属性里有!Top

21 楼123bug(大鸟)回复于 2001-07-16 08:18:19 得分 10

一个简单办法:把窗口类型改为RESPONSE的Top

22 楼ylg007(你注意到早晨的霞光吗?)回复于 2001-07-16 12:23:28 得分 0

大鸟办法最绝,最实用.Top

相关问题

  • 一个简单问题,你会不会
  • 一个如此简单的问题今晚耗了我好久, 所以我要说“fuck”....(该死的狐狸不知道还会不会出现)
  • 求一语句,简单,看你会不会了!
  • 这个查询不知道会不会用到索引
  • 不知道这样写会不会有副作用
  • 今年的高程序怎么这么简单?分数线会不会升啊?
  • 散分,软设上半年48/55,不知道分数线多少,会不会过
  • WIN XP要出了,MCSE 2000会不会又改成MCSE XP啊!!
  • 问一个简单的问题,堆会不会用到虚拟内存的?还是只用物理内存?
  • 以VC编写Windows下的多线程程序,对简单变量的访问会不会有同步问题?

关键词

  • 脚本
  • 变量
  • 打开
  • sheet
  • bati
  • mdi
  • hanson
  • 简单
  • opensheet
  • zhu

得分解答快速导航

  • 帖主:ylg007
  • Hanson_bati_zhu
  • susu_0807
  • Hanson_bati_zhu
  • lqh178
  • Kanfu
  • pbworm
  • 123bug

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo