"主表单"要么是一个顶层 表单要么是 VFP 的窗口(_Screen)。 不需要为一个"从属表单"指定一个"主表单", "从属表单" 打开时,自动选择当前的活动顶层表单作为其"主表单",当然,如果选择了"在屏幕中",则 这个从属表单自然就以_Screen 为其主表单了。
3."DeskTop"是规定表单在"显示方面的活动范围"的属性。 DeskTop 仅对"从属表单"有意义,当从属表单的 DeskTop=.f.时,它只能显示在它的"顶层表 单"的尺寸之内,当这个顶层表单的尺寸比它的尺寸还小时,它将会被部分地遮住;当从属表 单的 DeskTop=.t.时,它的活动范围将不受它的顶层表单尺寸的限制,它可以显示在电脑屏 幕的任何地方甚至之外。但不管它的位置离其顶层表单多远,一旦顶层表单最小化了,它会 立即顺从地从电脑屏幕上消失。
4."ShowWindows"是规定表单被执行时的程序动作的属性 分两种情况: (1)当表单的 ShowWindow 为"在屏幕中"和"在顶层表单中"时: a.当 WindowType="模式"时, 执行表单(DO FORM)后使得表单取得焦点, 并且一直到它被关闭, 在此期间, 它的父窗口对象(可能是_Screen 或一个顶层表单)的菜单系统及其所属的子表单都不能用。就是说,在表单存在期间,它将一 直霸占着焦点. b.当 WindowType="无模式"时,表单存在期间不会霸占焦点。有一个例外,当 DeskTop=.t. 时,执行它时会使系统菜单失效,而 DeskTop=.f.时则不会。 (2)当表单的 ShowWindow 为"做为顶层表单"时: 表单的 WindowType
属性不管是有模式还是 无模式,都不会霸占焦点。 5.一般情况, 用户的应用系统需要一个主表单 (主窗口) 您可以将_Screen 作为这个主窗口, , 也可以将项目中的某个"顶层表单"做为"主窗口", 很难说那种更好。 但在此笔者建议使用 VFP 主窗口做为用户系统的主窗口,这样可能会省去一些麻烦,因为 VFP 的很多工具条窗口被设 计成只能开在_Screen 中,例如在打印预览工具条等。 程序编译成 EXE 后,前者启动时先显示 VFP 主窗口,后者直接显示程序员自己
设计的顶层表 单。对于后者,为屏蔽 VFP 主窗口,一定要在 Config.fpw 写入 Screen=off(Config.fpw 应加 入到项目中,这样连编后它将被包含进 EXE 中,这一来可减少提供安装文件的数量,二来也 可避免被用户更改)。 另一方面,很多应用
系统程序都喜欢有一个漂亮的或曰自以为漂亮的启动封面,然后再进入 主控界面。如果一方面不希望在显示自己的启动封面前有 VFP 主窗口抢镜头,另一方面又想 让 VFP 主窗口做为程序的主控界面时,解决办法是:设计一个"顶层表单"做为启动封面, config.fpw 中仍须写 Screen=off,然后在启动封面展示够了自己的魅力之后,用一句
_Screen.Show 将_Screen 打回原形。
6.ShowWoindow 与 DeskTop 属性仅规定了 Form 在显示方面的特征, 而在"对象"这一更加高级 的层面上,"顶层表单"与"从属表单"彼此是平级的,而_Screen 虽然在显示方面与"顶层表单 "具有相同的地位,但在对象层面却是高一级的家伙,所有表单,不管你是"顶层表单"还是" 从属表单",都是它的子对象,这想起来就叫人糊涂,还是赶紧不想的好。
7."为什么我的程序编译后一闪而过?" 这个问题有两种可能性,第一种是程序执行完成并退出,第二种是程序正在执行,但界面被 隐藏。对于第二种情况,可直接按"Ctrl-Alt-Del"键观察到。造成这两种情况的原因如下: 我们先看下面的一段示例程序,假如下面的示例程序是项目的主程序,并且应用项目以 VFP 主窗口做为自己的主窗口。 *环境设置 Do Form myScreen &;&;启动封面表单 _ Screen.Show &;&;显示 VFP 主窗口 Do myMenu.mpr &;&;安装菜单系统 RETURN 为达到在显示启动封面之前不显示 VFP 主窗口的目的,在 Config.fpw 中已写 Screen=off, 当
程序执行到 Do Form m