当前位置: 代码迷 >> PB >> open 跟opensheet 的具体区别
  详细解决方案

open 跟opensheet 的具体区别

热度:71   发布时间:2016-04-29 07:52:30.0
open 和opensheet 的具体区别?
如题MDI窗体中两个有哪些区别?

另外:如果在MDI主窗体中放入一个control  此时为什么用opensheet打的窗体是不可见的? 如何让它可见?  
------解决方案--------------------
open打开窗口
opensheet打开子窗口

control要放在子窗口上
------解决方案--------------------
 Open() 

打开编程时已知数据类型的窗口对象 
语法: Open ( windowvar {, parent } ) 
参数 :windowvar 要打开窗口的窗口名 可以使用窗口画笔定义的窗口对象名 也可以使用该窗口对象的某个变量 Open()函数将把打开窗口的引用放置到
windowvar变量中  parent 可选项 指定要打开窗口的父窗口 要打开窗口成为父窗口的子窗口
只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数 如果应用程序使用 Open()函数打开某个子窗口或弹出窗口而又省略了该参数 那么当
前活动窗口成为被打开窗口的父窗口  
返回值 Integer 函数执行成功时返回 1 发生错误时返回-1 如果任何参数的值为
NULL Open()函数返回 NULL  
 示例 1   下面代码打开窗口 w_employee的一个实例  
Open(w_employee) 
示例 2    下面代码打开窗口类型为w_to_open的窗口实例  
w_employee   w_to_open 
Open(w_to_open) 


 OpenSheet() 
功能: 在 MDI框架窗口中打开 MDI子窗口 并在指定菜单中创建选择该子窗口的菜单项  
语法: OpenSheet(sheetrefvar{,windowtype},mdiframe{,position{,arrangeopen}}) 
参数: sheetrefvar 指定要作为工作表打开的窗口名  
       windowtype string 类型 可选项 指定是要打开窗口的类型 也就是窗口画笔中保存的窗口对象名  
       mdiframe 指定要放置工作表的 MDI框架窗口名  
       position 可选参数 指定所打开的工作表的名称作为一个菜单项显示在第几个
菜单标题下面 默认时 被放在倒数第二个菜单标题下 原因是 大多数商业软件的最后两个菜单标题是 Window和 Help 把工作表的名称放到Window菜
单标题中用于选择工作表窗口是个合情合理的选择  
       arrangeopen ArrangeOpen 枚举类型 可选参数 但如果选用了此参数 那么
position 参数也必须同时指定 arrangeopen 参数告诉系统如何显示打开的工作表  
返回值 Integer 函数执行成功时返回 1 发生错误时返回-1 如果参数任何的值为
NULL OpenSheet()函数返回NULL  
------解决方案--------------------
2,3楼都说完了
------解决方案--------------------
mdi里放了控件之后mdi的width和height都变成了0
你要用opensheet打开的窗口正是在mdi里面
想要看到,就得执行下面的操作:

this.mdi_1.width=newwidth
this.mdi_1.height=newheight
------解决方案--------------------
opensheet仅用于mdi框架,它的sheet,与一般的子窗口的行为是不同的,sheet其实是被mdiclient控件管理的,不是主窗口的直接子窗口
------解决方案--------------------
我写的代码你运行了吗?
mdi_1 怎么是sheet。mdi_1是放sheet的容器。
看看mdi类型的窗体定义:
forward
global type w_mdi from window
end type
type mdi_1 from mdiclient within w_mdi
end type

type cb_1 from commandbutton within w_mdi
end type
end forward

引用:
先感谢楼上的各位兄弟们 

6 ,7楼这位兄弟,你说的mdi_1指的就是sheet 吧?  
你这样做就可以实现即有控件又可以用opensheet了吧(且sheet 如8楼如说用mdiclient管理了吧)?  


8楼的兄弟 mdiclient 和[setparent(API)或者 open(sheet ,frame) ]有哪些在开发中用到的明显不一样的地方? 

是不是我用open打开的窗体中菜单中是没有的?  

------解决方案--------------------
绝对可以
引用:
对不起哟! 因为我在公司! 没有PB不能运行.... 


在做一个MDI窗体时,会自动生成一个mdiclient 你的mdi_1指的就是mdiclient对吧? 
  相关解决方案