vfp连编中的一些问题

上传人:m**** 文档编号:164954904 上传时间:2022-10-26 格式:DOCX 页数:7 大小:79.68KB
收藏 版权申诉 举报 下载
vfp连编中的一些问题_第1页
第1页 / 共7页
vfp连编中的一些问题_第2页
第2页 / 共7页
vfp连编中的一些问题_第3页
第3页 / 共7页
资源描述:

《vfp连编中的一些问题》由会员分享,可在线阅读,更多相关《vfp连编中的一些问题(7页珍藏版)》请在装配图网上搜索。

1、VFP 如何改变表单设计器大小我是个新手,哪位大侠能指点一下。如何改变表单设计器白色的表单布局窗口的大小。我做的表单比较大, 在设计器里只能看见一部分。打开 vfp 主菜单:工具选项,在选项窗口里选择“表单”页,找到最大设计区,选择需要的如:1280*1024.VFP 程序连编中的常见问题及解决方案一、【问】vfp主程序执行重新连编项目时没有错误,可是要联编成exe文件时,会提示连编程序名.app文件时出错,这是 为什么?还有我做了一个主界面的表单,可是执行完以后却不能执行以后的程序了,是不是缺少什么命令了?【答】本文所提表单窗口属性,是指那些不但影响表单本身的特征 (例如长宽等) ,而且对表

2、单之外、项目之中的其它 元件有影响的表单属性,它们包括如下三个:属性意义可选值(黑体为默认值)DeskTop指定表单是否包含在VFP主窗口中F./.T.WindowType 指定表单对象运行时的动作0-无模式/1-模式ShowWindow 指定在创建过程中表单窗口显示表单或工具栏 0-在屏幕中/1-在顶层表单中/3-做为顶层表单下面针对上述表单属性以及VFP中桌面(DeskTop)、屏幕(Screen)、表单(Form)等概念谈一谈我的理解。正因为VFP在 此方面的设计混乱,也就决定了我不能系统地、有条理地分析这些问题,我做的只能是阐述一些事实。1. 表单是一个对象,外观表现上是一个窗口。VF

3、P 的主窗口也可以说是一个 表单对象,它有一个固定的名字叫_Screen,_Screen是一个特殊的表单对象;2. ShowWindow是规定表单在显示方面的从属关系的属性ShowWindow属性实际上仅有两种选择:作为顶层表单 与在顶层表单中。为了表达方便,我们把具有前者属性值的表单称为顶层表单,后者称为从属表单。二者在显示方面 的不同地位是:顶层表单在 Windows 任务栏上有一席之地,从属表单却没有这种待遇;顶层表单最小化时,从属表单随之 被隐藏,当顶层表单关闭后,从属表单随之关闭。 ShowWindow 的第三种选择在屏幕中(默认)仅是在顶层表单中的 一个特例,即为在_Screen这

4、个特定的顶层表单中之意,选择此种属性值时,它一定是个从属表单了。_Screen具有顶层 表单的一切显示特征。从属表单不能独立地被显示,必须与他的主表单一起显示,这个主表单要么是一个顶层表单要么是 VFP 的窗口 (_Screen)。不需要为一个从属表单指定一个主表单,从属表单打开时,自动选择当前的活动顶层表单作为其主表单, 当然,如果选择了在屏幕中”,则这个从属表单自然就以_Screen为其主表单了。3. DeskTop是规定表单在显示方面的活动范围的属性。DeskTop仅对从属表单有意义,当从属表单的DeskTop=.f.时,它只能显示在它的顶层表单的尺寸之内,当这个顶 层表单的尺寸比它的尺

5、寸还小时,它将会被部分地遮住;当从属表单的DeskTop=.t.时,它的活动范围将不受它的顶层表单 尺寸的限制,它可以显示在电脑屏幕的任何地方甚至之外。但不管它的位置离其顶层表单多远,一旦顶层表单最小化了,它 会立即顺从地从电脑屏幕上消失。4. ShowWindows 是规定表单被执行时的程序动作的属性 分两种情况:(1) 当表单的ShowWindow为在屏幕中和在顶层表单中时:a.当WindowType=模式时,执行表单(DO FORM)后使 得表单取得焦点,并且一直到它被关闭,在此期间,它的父窗口对象(可能是_Screen或一个顶层表单)的菜单系统及其所属 的子表单都不能用。就是说,在表单

6、存在期间,它将一直霸占着焦点.b.当WindowType=无模式时,表单存在期间不会霸 占焦点。有一个例外,当DeskTop时,执行它时会使系统菜单失效,而DeskTop.时则不会。(2) 当表单的 ShowWindow 为做为顶层表单时: 表单的 WindowType 属性不管是有模式还是无模式,都不会霸占焦 点。5般情况,用户的应用系统需要一个主表单(主窗口),您可以将_Screen作为这个主窗口,也可以将项目中的某个 顶层表单做为主窗口”,很难说那种更好。但在此笔者建议使用VFP主窗口做为用户系统的主窗口,这样可能会省去一些 麻烦,因为VFP的很多工具条窗口被设计成只能开在_Screen

7、中,例如在打印预览工具条等。程序编译成EXE后,前者启动时先显示VFP主窗口,后者直接显示程序员自己设计的顶层表单。对于后者,为屏蔽 VFP主窗口,一定要在Config.fpw写入Screen=off(Config.fpw应加入到项目中,这样连编后它将被包含进EXE中,这一来 可减少提供安装文件的数量,二来也可避免被用户更改)。 另一方面,很多应用系统程序都喜欢有一个漂亮的或曰自以为漂 亮的启动封面,然后再进入主控界面。如果一方面不希望在显示自己的启动封面前有VFP主窗口抢镜头,另一方面又想让 VFP主窗口做为程序的主控界面时,解决办法是:设计一个顶层表单做为启动封面,config.fpw中仍

8、须写Screen=off,然 后在启动圭寸面展示够了自己的魅力之后,用一句_Screen.Show将_Screen打回原形。6.ShowWoindow与DeskTop属性仅规定了 Form在显示方面的特征,而在对象这一更加高级的层面上,顶层表单与 从属表单彼此是平级的,而_Screen虽然在显示方面与顶层表单具有相同的地位,但在对象层面却是高一级的家伙,所 有表单,不管你是顶层表单还是从属表单,都是它的子对象,这想起来就叫人糊涂,还是赶紧不想的好。7.为什么我的程序编译后一闪而过? 这个问题有两种可能性,第一种是程序执行完成并退出,第二种是程序正在执 行,但界面被隐藏。对于第二种情况,可直接按

9、Ctrl-Alt-Del 键观察到。造成这两种情况的原因如下:我们先看下面的一 段示例程序,假如下面的示例程序是项目的主程序,并且应用项目以VFP主窗口做为自己的主窗口。*环境设置Do Form myScreen &启动封面表单 _Screen.Show &显示 VFP 主窗口Do myMenu.mpr &安装菜单系统RETURN为达到在显示启动圭寸面之前不显示VFP主窗口的目的,在Config.fpw中已写Screen=off,当程序执行到Do Form myScreen这一句时,如果表单myScreen的ShowWindows属性被设为在屏幕中,则不管是在开发环境还是在编译环境下, 程序都

10、将停下来,表单被显示在_Screen中,而_Screen被隐藏了,因此表单跟着也被隐藏了,所以在屏幕上什么也看不见。 这就是第二种情况的产生原因。为了避免这种错误的出现,必须将myScreen表单的ShowWindow的属性设为做为顶层表 单,这样就可使在_Screen被隐藏的情况下,myScreen仍然可以被显示出来。但请注意,在此情况下,Do Form myScreen 这句话执行后,程序并不能停下来,而是顺序地执行下去,一直到执行到RETURN后程序退出,这也就是著名的一闪而过 现象了。为此必须在程序中包含事件处理命令Read Events使程序停下来,如下:*环境设置Do Form m

11、yScreen &启动封面表单Read Events &开始事件处理:使启动封面停下来_ Screen.Show &显示 VFP 主窗口Do myMenu.mpr &安装菜单系统Read Events &开始事件处理RETURN程序执行Do Form myScreen后,将启动圭寸面显示在屏幕上,然后向下执行到Read Events开始事件处理,此时启动圭寸 面表单必须由用户关闭或由表单事件关闭,否则程序将一直停在Read Events这一句上。不管myScreen表单由谁关闭,在关 闭代码中必须包含一句 Clear Events 的停止事件处理命令,以便开始执行 Read Events 的下

12、一句指令,顺序执行完成 _Screen.Show及Do myMenu.mpr后,用户的主界面就建立完成,同理,此处还需要一个事件处理命令让程序再次停下来, 开始菜单系统的命令处理,一般情况,菜单系统中将包含的退出项,其中有Clear Events清除事件处理代码,从而停止第 二条Read Events 事件处理命令,退出整个系统。二、【问】我用VFP做了一个exe程序,可是在别的没有VFP的电脑里能不能运行?有没有高手指点一个办法?如何把 这个程序做成一个完整的exe程序?【答】 1、最简单的办法是将项目下的所有数据表文件、数据库文件、cdx 文件、 .exe 文件以及 VFP 安装目录中的V

13、FP6R.DLL.VFP6RCHS.DLL两个文件复制到一个文件夹里,这样已经完成了打包、并制作成了绿色版的软件,你再拿到没 有安装VFP环境的电脑中运行.exe文件试试,发现可以脱离VFP环境运行了。(以上是VFP6.0制作的软件,如果是VFP7.0 或8.0等,则将VFP6R.DLL.VFP6RCHS.DLL两个文件作相应替换)。2、如果你不喜欢这种方式,可以打开VFP程序,在菜单中选择“工具-向导-安装”,接下来的对话框应该都看得懂的。 这样制作的软件同样可脱离 VFP 环境运行。使用前需要在电脑中安装该制作好的软件,也就是在电脑注册表中添加一些信 息。与上面的办法不同的是:前者不会在注

14、册表中添加信息,不用了直接删除即可;后者需进入控制面板进行删除你的软件 程序;另外后者的个头大,前者的个头小。制作绿色版软件关于库文件的补充说明:需要把VFP的运行库文件拷贝到EXE所在目录或系统目录下即可。VFP6的运行库:vfp6r.dll、vfp6rchs.dll、(vfp6run.exe、vfp6r.dll、vfp6renu.dll、gdiplus.dll )VFP7 的运行库: vfp7r.dll、 vfp7rchs.dll、( gdiplus.dll、 msvcr70.dll、 vfp7renu.dll )VFP8 的运行库: vfp8r.dll、 vfp8rchs.dll、( g

15、diplus.dll、 msvcr70.dll)VFP9 的运行库: vfp9r.dll、 vfp9rchs.dll、( gdiplus.dll、 vfp9t.dll、 msvcr71.dll)在大多情况下VFP6R.DL.VFP6RCHS.DLL就够了,在 c:windowssystem 可以找到这些文件!一般情况下不需要VEPRUN.EXE。只需VFP6RCHS.DLL VFP6R.DLL 两个文件.另外补充一下:VFP6R.DLL是必选的运行时刻文件(注意与VFP的版本要一致),而VFP6RCHS.DLL是中文版语言支持库(对应英文 版支持为VFP6RENU.DLL),而FOXRUN.e

16、xe只在个别时候才加上(如程序中需要运行DOS程序而不想让它出现DOS窗 口等情形)三、【问】*这个图形怎么用 FOR 语句编出来哦?【答】clearFOR i=-7 TO 7FOR j=1 TO ABS(i)? NEXTFOR j=1 TO 15- 2* ABS(i)?*NEXT?NEXT四、【问】vfp程序连编发布后如何去掉运行窗体后面的foxpro窗口?而且运行后foxpro窗口无法关闭,怎么解决?另外 如何控制初始运行窗体的最大化最小化?【答】1、在主程序加上_screen.visible=.f.这一句,就可以不让VFP的窗口显示。2、 运行后VFP的窗口无法关闭?你是指无法退出VFP

17、吧?如果是,在主程里加上一句:on shutdown quit3、表单有个 windowstar 属性,设置为 2 是打开时最大化。五、【问】VFP连编的可执行程序为什么一运行就退出了? 【答】主程序设置错误,在进入主程序的后面加上read evente.g.do main.prgread event 在退出的程序中加入 clear evente.g. proc exit clear event六、【问】关于从vfp中“连编可执行文件”时,为什么连编的.exe程序在windows中运行不了呢?连编的.exe文件,点击 一闪而过?请问是怎么回事?【答】第一种情况说明正常,在 windows 下需

18、要相关的运行库文件,根据不同版本文件数量不一样的,你可以找一下, 放在运行目录下VFP6 的支持库: vfp6r.dll vfp6rchs.dll gdiplus.dllVFP7 的支持库: msvcr70.dll vfp7r.dll vfp7rchs.dll vfp7renu.dll gdiplus.dllVFP8 的支持库: msvcr70.dll vfp8r.dll vfp8renu.dll gdiplus.dllEXE 一闪而过有两种情况:1你的项目主表单若为顶层表单,而它的showwindow属性你却没有设置成2,同时在又写了代码_SCREEN.VISIBLE=.F。 这样的话,双击

19、EXE后什么也看不见,而实际上它已经在运行了。2.你在主程序或者程序第一次写DO FORM FORM1.SCX 或DO MAINMENU.MPR后没有写上READ EVENTS这句。缺 少了这句,EXE双击后一闪就没了。【答】 SET TALK OFFSET DELETE ONSET SAFE OFF&关闭项目管理器 &;确定程序所在的位置 &设置当前路径 &指明路径&打开数据库&运行表单 sqlvfp_VFP.VISIBLE=.F.deactivate window 项目管理器 wjgl=left(sys(16),rat(,sys(16) set defa to (wjgl)set path

20、 to dataopen database wjgldo form sqlvfpREAD EVENTSclear eventsRETURN将表单设的 showwindow 设为“顶层表单”【答】这个问题有两种可能性,第一种是程序执行完成并退出,第二种是程序正在执行,但界面被隐藏。对于第二种情 况,可直接按“Ctrl-Alt-Del5键观察到。造成这两种情况的原因如下:我们先看下面的一段示例程序,假如下面的示例程序是项目的主程序,并且应用项目以VFP主窗口做为自己的主窗口。 *环境设置Do Form myScreen &启动封面表单_Screen.Show &显示 VFP 主窗口Do myMen

21、u.mpr &安装菜单系统RETURN为达到在显示启动圭寸面之前不显示VFP主窗口的目的,在Config.fpw中已写Screen=off,当程序执行到Do Form myScreen这一 句时,如果表单 myScreen 的 ShowWindows 属性被设为“ 在屏幕中”,则不管是在开发环境还是在编译环境下,程序都将停下来, 表单被显示在_Screen中,而_Screen被隐藏了,因此表单跟着也被隐藏了,所以在屏幕上什么也看不见。这就是第二种情况的产 生原因。为了避免这种错误的出现,必须将myScreen表单的ShowWindow的属性设为“做为顶层表单”,这样就可使在_Screen 被隐

22、藏的情况下,myScreen仍然可以被显示出来。但请注意,在此情况下,Do Form myScreen这句话执行后,程序并不能停下 来,而是顺序地执行下去,一直到执行到 RETURN 后程序退出,这也就是著名的“一闪而过”现象了。为此必须在程序中包含事 件处理命令 Read Events 使程序停下来,如下:*环境设置Do Form myScreen &启动封面表单Read Events &开始事件处理:使启动封面停下来_Screen.Show &显示 VFP 主窗口Do myMenu.mpr &安装菜单系统Read Events &开始事件处理RETURN程序执行Do Form myScre

23、en 后,将启动圭寸面显示在屏幕上,然后向下执行到Read Events开始事件处理,此时启动圭寸面表单必须 由用户关闭或由表单事件关闭,否则程序将一直停在Read Events这一句上。不管myScreen表单由谁关闭,在关闭代码中必须包 含一句 Clear Events 的停止事件处理命令,以便开始执行 Read Events 的下一句指令,顺序执行完成 _Screen.Show 及 Do myMenu.mpr 后,用户的主界面就建立完成,同理,此处还需要一个事件处理命令让程序再次停下来,开始菜单系统的命令处理, 一般情况,菜单系统中将包含的“退出”项,其中有“Clear Events”清

24、除事件处理代码,从而停止第二条“Read Events”事件处理命令, 退出整个系统。七、问:如何生成和发布应用程序?答:1、设置主文件当用户运行应用程序时, Visual FoxPro 将启动主文件,然后主文件再依次调用所需要的应用程序其他组件。所以,最好 的方法是为应用程序建立下列主程序。(注意,如果只是使用一个表单作为主程序,虽然可以将主程序的功能和初始界面集 成在一起,但是其连遍的应用程序不能脱离VFP而独立运行。因为其中没有read event命令)例如,设置主文件为程序文件“主程序”,如图 1所示。操作方法:在“主程序”上单击鼠标右键,选中 “设置主文件”菜单项,或先选中 “主程序

25、”,单击“项目”菜单,选中 “设置主 文件”菜单项。3 新建皿 瓣加. 曦修改血运行园頌目管理盟-学生选课系毓IV库砂序1 T用 据档库玛程口粧应也 数文类代口鳥圍32為 園肌-3卧t-8 B-B-曰路裁C : I学*设置主宜件谕辑目码成助重编项代生帮-嵇去世二 谨端., nMM 1谥宦礙t)的左立艸例如,主文件(主程序.prg )代码编写如下:clear allset talk offset default to c:学生选课系统 &设置程序的默认路径public xh,jsbh,kcbh& xh、jsbh、kcbh 分别用于存储输入的学号、教师编号、课程编号do form 封面&调用封面程

26、序modify window screen title 学生选课管理系统 & 设置主窗口的标题do主菜单.mpr&调用出菜单read event&建立时间循环quit&退出 VFP2、生成应用程序当项目各个模块建好后,在项目运行前还必须对它们“连编”。在项目管理器中选择连编按钮,在显示的连编选项对话框中 选择连编可执行文件,选择“确定”按钮,弹出另存为对话框,如图 2所示。庄卑程厚呂慄善第型rriL!m禹?在:n学王饰乐i/t3 刮型国IBsJ!siup2Jt 期芋生虔建系乐.4K6图 2 应用程序另存为对话框选择应用程序保存的路径和文件名,选择保存按钮,即可生成应用程序。3、应用程序的发布和

27、安装 应用程序的发布主要是为了便于用户使用时将程序方便的安装到他的计算机上。1发布的准备首先建立一个发布树(目录),用于存放用户运行该应用程序时所需的全部文件。最好是在VFP目录外建一个专用目录, 例如在项目所在目录下创建一个 Setup 目录,再将需要的文件放进该目录。这些文件包括:.exe 文件连编时未自动加入项目管理器的文件设置为排除类型的文件,如数据库表等运行支持库Vfp6r.dll、特定地区资源文件Vfp6rchs.dll (中文版)或Vfp6renu.dll (英文版)。这些文件都存放在Windows 的 SYSTEM 目录中。2创建发布磁盘VFP 提供的“安装向导”可用来创建磁盘

28、并预置磁盘的安装路径。安装向导要求用户指定发布树,指定在硬盘上建立磁盘 映象的目录,以及指定应用程序安装时使用的默认目标目录。下面说明安装向导的使用步骤。选择工具菜单的向导选项的安装命令,屏幕上将出现安装向导对话框(首次安装时),要求用户指定安装向导自用的目录。 可以创建目录,也可以使用已有的目录,然后进入安装向导对话框,引导用户逐步操作。步骤1-定位文件:选择发布树目录,例如c:学生选课系统setup。选择“下一步”按钮。步骤2-指定组件:要求用户指定必须包含的系统文件。可选择“Visual FoxPro运行时刻组件”和“Microsoft Graph &0运行时 刻”两个复选框,选择“下一

29、步”按钮。步骤3-磁盘映象:要求用户指定磁盘映象目录和安装磁盘类型。此时可选择磁盘映象目录C:学生选课系统setup,并保 持“L44MB 3.5英寸”复选框的选定状态,选择“下一步”按钮。步骤 4-安装选项:要求用户指定安装是所显示的对话框的标题,以及版权声明等内容。可在“安装对话框标题”文本框中 输入“学生选课系统”,在“版权信息”文本框中输入“武汉大学计算中心”,选择“下一步”按钮。步骤 5-默认目标目录:要求用户指定默认的文件安装目录和开始菜单中程序管理器组名。此时可以保持系统默认设置。步骤 6-改变文件设置:该对话框中有一个表格,每行显示一个文件,用户可通过更改某列中的某项来改变文件

30、的设置。 “文件”列:指定文件名称“目标目录”列:指定文件安装在计算机上的位置。AppDir表示应用系统所在的目录,WinDir表示Windows所在的目录, WinSysDir 表示 Windows 的系统目录。“程序管理项”列:选定后将显示“程序组菜单项”对话框,从中可以指定说明、命令行和图标三个属性。本例中可以在说明 中输入“学生选课系统”,在命令行中输入“s学生选课系统.exe”,其中s表示应用程序目录。“ActiveX”列:用于在计算机上注册ActiveX控件。选择“下一步”按钮。步骤 7-完成:直接选择“完成”按钮,安装向导将生成磁盘映象,然后显示“安装向导磁盘统计信息”窗口。 3将磁盘映象复制到软盘经上述操作后,在C:学生选课系统setup下产生了磁盘映象目录“DISK144”,其下还有DISK1DISK6等6个子目录,供 用户复制6张一套的发布软盘。4应用程序安装发布软盘DISK1中含有应用程序的安装程序Setup.exe,只要在Windows中运行该程序就可以一步一步的进行应用程序的 安装应用。应用程序安装好后,Windows的开始菜单中出现该应用程序的程序组及程序项,供启动应用程序。八、初始程序在 do form 你的主表单 之后要加read events &开始响应事务退出时clear events & 停止响应事务

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!