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

ylg007 2001-07-15 03:33:03
如何实现不关闭当前窗口,就不能再打开另一个窗口。^-^
...全文
189 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylg007 2001-07-16
  • 打赏
  • 举报
回复
大鸟办法最绝,最实用.
123bug 2001-07-16
  • 打赏
  • 举报
回复
一个简单办法:把窗口类型改为RESPONSE的
阿鹏兄 2001-07-15
  • 打赏
  • 举报
回复
属性里有!
pbworm 2001-07-15
  • 打赏
  • 举报
回复
一个笨笨的办法,设置一个全局变量。在打开窗口之前判断一下这个全局变量的值,如果是1的话就不可以打开。打开窗口以后将这个变量设置为1,关闭以后将它设置为0就可以了。

太简单了,徒若各位大虾笑话了。
Kanfu 2001-07-15
  • 打赏
  • 举报
回复
我不知道你为什么不把main类型的窗口该为response类型。你是不是指打开一个特定的sheet,就不能打开其他sheet?
lqh178 2001-07-15
  • 打赏
  • 举报
回复
将窗口全部继承自一个祖先,然后在祖先中设置一个共享变量,在窗口的open事件中检测该共享变量,如果为初始值,表示为打开的第一个窗口,然后继续并通过函数修改之,这样在另一个打开窗口中检测该变量时便可知已经有了相应的窗口存在,在该窗口的open事件中这样写便应可以

if get_totalwin() = 0 then //取共享变量
set_totalwin(1) //设置共享变量
else
close(this)
return
end if
ylg007 2001-07-15
  • 打赏
  • 举报
回复
to net_fox
怎么写啊
net_fox 2001-07-15
  • 打赏
  • 举报
回复
是啊,要看你想限制什么了,在主窗口的close事件中限制不就行了?这是最简单的方法了,限制主窗口未关闭,不允许打开下个窗口!脚本自己写一下啊!
Hanson_bati_zhu 2001-07-15
  • 打赏
  • 举报
回复
试试
在菜单的脚本里写
IF IsValid(parentwindow.getfirstsheet()) THEN
RETURN
END IF
OpenSheet(child_1, MDI_User, 2, Original!)
咖啡 2001-07-15
  • 打赏
  • 举报
回复
你到底想限制什么?
用作标记的办法也可以,不过要对所有的main窗口编程序,比较麻烦的(用继承会好一点).
Hanson_bati_zhu 2001-07-15
  • 打赏
  • 举报
回复
SORRY!
审错题了8-(
上面当我没说
呵呵
8-)
Hanson_bati_zhu 2001-07-15
  • 打赏
  • 举报
回复
试试
在菜单的脚本里写
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



Methodor 2001-07-15
  • 打赏
  • 举报
回复
最简单的方法:做个标记~~
ylg007 2001-07-15
  • 打赏
  • 举报
回复
to Hanson_bati_zhu(Hanson_bati_zhu) 
不好意思,表达不够清楚。
我是想在一个mdi窗口中只能打开一个main类型的窗口。
Hanson_bati_zhu 2001-07-15
  • 打赏
  • 举报
回复
你是不是要同时不能打开一个应用的多个实例?
Hanson_bati_zhu 2001-07-15
  • 打赏
  • 举报
回复
to:ylg007(棕子)
MDI是指多文档界面
SDI是指单文档界面

ylg007 2001-07-15
  • 打赏
  • 举报
回复
Hanson_bati_zhu(Hanson_bati_zhu) 
我用的是mdi.
另一个问题:main类型的窗口是sdi的吗?
Hanson_bati_zhu 2001-07-15
  • 打赏
  • 举报
回复
你用的是MDI还是SDI?
hellon1 2001-07-15
  • 打赏
  • 举报
回复
只要打开就可以了
jakey_yang 2001-07-15
  • 打赏
  • 举报
回复
可以可以,只要一个数组就可以了。判断数组的上限,然后。。。。
加载更多回复(2)

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧