简单又简单,不知道你会不会。
如何实现不关闭当前窗口,就不能再打开另一个窗口。^-^ 问题点数: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




