VFP 6.0的十个实用技巧

VFP 6.0 故障解决两篇 一,运行VFP6.0写的程序,提示"资源文件版本不匹配"安装了一个用VFP开发的应用程序,运行它提示“资源文件版本不匹配”,无法运行,并且运行其他以前的用VisualFoxpro开发的应用程序也出现这样的问题,卸载后也还是一样,重新安装VFP5.0或6.0也不管用,尝试以下方法中的一种或多种: ---------------------------------------------------- 阅读详情
朱运喜(河北省.任丘市)

---- 一.选择网络打印机

---- 笔者单位里的局域网上安装有多台网络打印机,在使用VFP 6.0编制的程序进行打印操作时,是否可以选择其中的某一台空闲的网络打印机进行打印,而不一定非要从默认打印机输出,从而提高工作效率呢?经笔者研究,在执行命令:Report From … To Printer 之前,先执行下列程序代码:Set Printer To Name Getprinter(),就可以调用操作系统的"打印设定"对话框,用户利用该窗口即可达到灵活选择空闲打印机进行打印输出的功能。(注:可供选择的打印机名是用户计算机上已安装好的打印机名。)

---- 二.恢复丢失了的FPT文件

---- 由于误操作,将自由表的备注文件删除,致使自由表无法打开。遇到这种情况我们可采用下述方法解决:

---- 1.创建一个新的自由表,且该自由表只含一个字段,其类型为备注型。关闭该自由表,将其扩展名为FPT的备注文件复制给误删除的自由表的备注文件,或将该备注文件改名为误删除的自由表的备注文件即可。运行下面的程序同样也可以恢复丢失了的FPT 文件:

accept '请输入丢失了.FPT
文件的自由表名称(不带扩展名):' to namef
namef=trim(namef)+'.bbb'
crea dbf &namef (aa m)
use
dele file &namef

---- 2.用VFP低级文件函数创建一个空的FPT文件,原自由表即可打开。程序清单如下:
accept '请输入丢失了.FPT
文件的自由表名称(不带扩展名):' to namef
namef=trim(namef)+'.FPT'
hand=fcreate(namef)
abc=repl(chr(0),3)+chr(8)+
repl(chr(0),3)+'@'+repl(chr(0),504)
=fwrite(hand,abc)
=fclose(hand)
return

---- 上述方法只是为丢失了FPT文件的自由表建立了一个新的FPT文件,原FPT文件中的内容已经丢失,无法恢复。在实际操作中若遇到这种情况,最好是恢复原来的FPT文件,若原FPT文件无法恢复时再采用上述方法。
---- 三.脱离VFP运行程序

---- 利用VFP 6.0创建的应用程序,被编译成可执行程序后,若要使其脱离VFP环境独立运行,除了我们所知道的在应用程序目录中需包含一个名为"CONFIG.FPW"的配置文件外,经笔者试验发现还必须包含"VFP6R.DLL"、"VFP6RCHS.DLL"、"VFP6RENU.DLL"这三个动态链接库文件。这三个文件在"Windows/System"目录下,用户可直接将其复制到自己的应用程序目录中。最后再经过编译形成可执行程序,运行安装向导创建发布磁盘,我们开发的小应用程序就可以堂堂正正地在Win 98下安装运行了。

---- 四.低级文件函数加密数据库

---- VFP有一个十分薄弱的环节就是数据库的保密性差。由于.DBF文件都是敞开式的,甚至用DOS中最简单的TYPE命令都可以浏览,因此,笔者从以下两方面对数据进行加密:

---- 1.在向自由表中增加数据时,就进行加密,即更新自由表时就对数据进行加密,在读取数据时再解密。

---- 2.用VFP提供的低级文件函数进行加密,加密后的文件无法打开、浏览,使用时,再执行该加密程序即可将加密的自由表还原。

**加密数据库程序(同时也是解密程序)**
set talk off
close all
clea
@10,10 say "请输入要加密的
自由表名(含扩展名):" get file1 defa ' '
read
handle=fopen("&file1",2)
if handle< 0
@14,10 say "不能打开文件!"
=inkey(0)
retu
endif
j=0
do while .not.feof(handle)
bb=fread(handle,1)
cc=chr(mod(asc(bb)+128,256))
=fseek(handle,j)
=fwrite(handle,cc)
?asc(bb),asc(cc)
j=j+1
enddo
=fclose(handle)
close all
retu

---- 五.简易设置TextBox对象的输入长度
---- 在以前的Xbase语法中,我们可以通过Picture参数定义某变量或文本栏的输入长度格式,而在VFP中的TextBox对象中则支持了Format和InputMask属性来定义输入的格式。我们可以使用比较原始的方法来进行设定,比如当要求输入有20个栏位的文本框对象时,我们可以在此对象的InputMask属性中定义为InputMask="XXXXXXXXXXXXXXXXXXXX"。

---- 但是这样的设定方法非常麻烦,尤其是当面对更长的字符串输入时更是不方便。其实我们完全可以用另外一种方法来把这样的需求设计过程变得很简单,下面就具体介绍一下这种简易的快速设定输入栏位的方法。

---- 利用Replicate()函数设定输入长度这里我们同样利用了对象的InputMask属性来定义输入格式和输入长度,但是当对象的输入比较长时,则可以借助算术表达式的方式来对其进行设定。通过属性窗口中的InputMask属性建立表达式对话框,我们可以利用Replicate()函数设定重复的"X"的个数即可(本例为20)。完成后回到属性设置窗口,我们可以看到在InputMask属性栏中出现了"=Replicate(20)"位值的表达式,这样,我们就轻松地完成了长字符输入的长度控制。由此我们也可以体会到善于使用表达式给我们带来的方便之处。

---- 六.中文文本框的设计方法

---- 在程序开发过程中,我们经常要设计一些文本框,而且这些文本框要求只能输入中文。在这种情况下,通常需手工启动某一种中文输入法。如果软件能够自动启动缺省的中文输入法,那么将会给编程人员带来很大的方便。下面的类便能实现这一功能,具体的设计步骤如下:

---- 1.创建一个新类,其基类是"TextBox",类名为"中文TextBox",存储于"myclass"类库中。

---- 2.进入类设计器后,设置"中文TextBox"的各项属性,如字体、颜色等。

---- 3.设计GotFocus事件,代码为: =IMESTATUS(1) 表示当光标移到此框后,自动启动中文输入法。

---- 4.设计LostFocus事件,代码为: =IMESTATUS(0) 表示当光标移开此框后,自动关闭中文输入法。设计好后,保存到文件即可。

---- 七.立体框类的设计方法

---- 在VFP的标准类里提供了一个形状控制类(Shape),可以简单地将S hape的"SpecialEf fect"属性设置为"0-3D",将"BackStyle"属性设为 "0-透明",来设计三维立体框。

---- 然而这样的三维立体框太单调,缺少变化。通过以下的设计方法, 我们可以作出类似于VB中的Three_D Panel那样的效果。具体设计步骤如下:

---- 1.新建一个类,基类是"Container",类名为"Three_Panel",存储于"myclass"类库中。

---- 2.进入类设计器后,设置"Three_ panel"的各项属性,如表1所示。属性设计完毕后,存入文件,就可以得到凸起效果的边框类。

---- 3.通过调整"SpecialEffect"的值为"1-凹下",可以设计凹下效果的边框类(three_p anel_ao)。 调整其余参数可以得到不同效果的边框。

---- 八.在程序中播放动画

---- 我们知道,VFP只支持静止的图片,无法直接播放GIF动画。但网上许多有趣而华丽的GIF动画的确令人心动,如何将这些动画插入到你的VFP程序中,让你的程序更吸引人呢?

---- 其实很简单,将GIF动画分解成各单独的静止的GIF或BMP图片,然后在VFP使用计时器让这些静止的图片轮流出现,就产生动画效果了。

---- 将GIF动画分解为静止图片的软件有很多,在网上很容易找到,如Animagic GIF 等。分解出来的图片我们分别以a0.bmp、a1.bmp……这样的形式保存。在表单中添加计时器TIMER1,TIMER1的Interval属性设为100,Enabled属性设为.T.,再添加Image1控件,其Backstyle属性设为0(透明),Stretch也设为0(裁剪)。

---- 在FORM的LOAD过程中写代码:

Public I , N
I=0
N=5(静止图片的总共数目)
在TIMER1的TIMER过程中写代码:
Local j
i = mod (i+1,n)
j = alltrim( str(i) )
thisform.image1.picture="a"-j-".bmp"
运行表单,我们就可以看到熟悉的GIF动画了。

---- 九.粘贴VFP顶层表单
---- 当你将表单设置为顶层表单并独立运行于Windows下,就会发现表单中复制粘贴功能失效,给实际工作造成极大的不便,从而使编制的软件达不到专业水准。通过认真分析与实践,笔者认为,造成这一问题的原因是微软设计VFP时,只考虑了位于系统选单下的表单的复制和粘贴情况,即位于系统选单下的表单可使用复制及粘贴热键,而处于Windows下的表单完全脱离了系统选单的控制,因此复制及粘贴热键失效。

---- 解决的办法是可在表单的控件(本文举例为文本框)中,为KeyPress Event编写如下事件处理程序,该事件处理程序首先将选择内容复制到Windows剪贴板上,然后再将剪贴板上的内容添加到控件中。

KeyPress Event
LPARAMETERS nKeyCode, nShiftAltCtrl
if nkeycode=3
&& CTRL+C 复制
-cliptext=this.seltext
endif
if nkeycode=22
&& CTRL+V 粘贴
do case
case this.selstart=0
this.value=-cliptext+this.value
case this.selstart〉=1
and this.selstart〈=len(this.value)
this.value=subs(this.value,1,this.selstart)+
-cliptext+subs(this.value,this.selstart+1)
endcase
endif
thisform.grid1.column1.setfocus()
sele recetem
if not eof()
skip
endif
thisform.refresh

---- 十.为VFP添加循环微调控件类
---- 在VFP编程中,微调控件是最常用的控件之一。按照微调控件提供的基本功能,通过单击向上或向下箭头,而达到微调控件的最大或最小值时,如继续单击向上或向下箭头,将保持最大或最小值不变。笔者通过对Spinner控件属性和事件的分析,用编程的方法实现了循环微调控件功能。

---- 循环微调控件(CycleSpinner)所实现的功能是:当单击向上箭头而达到最大值时,再单击向上箭头,能自动跳到最小值;当单击向下箭头而达到最小值时,能自动跳到最大值;其余功能均继承Spinner基类的功能。具体实现方法如下:利用表单控件,在表单中设计一个微调按钮,并设置如下属性:

SpinnerHighValue=Max
&&Max应小于Spinner基类所
&&提供的最大默认值
SpinnerLowValue=Min
&&Min应大于Spinner基类所
&&提供的最小默认值
Value=1
Name='CycleSpinner'
在Init事件中写入如下代码:
This.SpinnerHighValue=This.
SpinnerHighValue+This.Increment
This.SpinnerLowValue=This.
SpinnerLowValue-This.Increment
在InteractiveChange事件中写入如下代码:
If This.Value=This.SpinnerHighValue
This.Value=Int(This.
SpinnerLowValue+This.Increment)
Endif
If This.Value=This.SpinnerLowhValue
This.Value=Int(This.
SpinnerHighValue-This.Increment)
Endif
Thisform.Refresh
---- 再将其作为类保存起来,添加到你的类库中。
---- 若你在编程中,需用此功能,就可直接用此循环微调控件类了。
VFP6.0衰落原因与替代技术分析 Visual FoxPro(VFP)6.0被淘汰的主要原因包括:微软2007年终止官方支持,导致兼容性和安全问题;功能局限,无法满足Web和移动开发需求;高校课程转向MySQL等主流数据库;开源技术(如PostgreSQL)和数据分析工具(Python/R)的冲击;遗留系统迁移成本高。目前企业应用占比已不足0.5%,学术研究也大幅减少。 阅读详情

相关推荐

VFP6.0应用程序独立运行所需的DLL文件封装指南

简介:本文介绍如何使Visual FoxPro 6.0(VFP)开发的应用程序在没有安装完整VFP环境的计算机上独立运行。通过复制特定的DLL文件到应用程序的工作目录下,即使在未安装VFP的Windows系统上,程序也能获得必需的运行时支持。本文还将列出运行VFP程序所必需的关键DLL文件,并强调版本兼容性的重要性。

weixin_42627459的博客 1037

如何将光标定位在对话框上的某个控件上

问:如何将光标定位在对话框上的某个控件上?   答:比如控件标识是IDC_EDIT1,要想在对话框刚打开时就使该控件获得光标,只需要在该对话框的OnPaint()函数中添加如下语句:         GetDlgItem(IDC_EDIT1)->SetFocus();

Anliya的专栏 1289

30个VFP编程技巧集合

VF文件与系统方面的编程小技巧: 1.利用VF锁住WINDOWS 2.实现WINDOWS的重新启动 3.屏蔽Ctrl+Alt+Del组合键 4.去掉开始菜单中的关闭系统项 5.隐藏、显示开始按钮 6.隐藏、显示Windows任务栏 ....

〔连载〕VFP9增强报表-运行时能力的增强

译者:​Fbilo VFP 开发组在对运行时增强工作的时候有几个目标,其中包括: 处理更多的报表输出类型,而不仅仅是打印和预览; 为报表输出使用 GDI+。这提供了一些显著的增强,比如精确得多的报表绘制、图像和字体的平滑缩放、以及象文本旋转那样的额外能力。 提供一个更灵活的多得、可扩展得报表系统; 在 VFP 9 以前,报表引擎是庞大的:它处理每一件事情-数据处理、对象定位、绘制、预览以及打印。此外,还有一些例外(字段中的UDF、组、变量表达式、带区的 OnEntry 和 OnExit 表达式等等),.

加菲猫的VFP 1178

VFP6

VFP6

Vfp6-----工具

不用安装直接解压可用,VFP6.EXE 应用程序

vfp控制word光标位置_这些简单高效的Word和Excel操作,忍不住分享给你

文/沙发蝴蝶工作之后,我会留心收集一些能提高工作效率的小技能,尤其是办公软件Word和Excel的操作。我很喜欢学习这些小技巧的过程体验,更喜欢的是将它们自然而然地运用在工作当中时。如果存在一些简单高效的操作技巧,一学就会,还能大幅度提高我们的工作效率,当然是多多益善。前两天偶然在网易蜗牛读书看到《时短术》,是今年4月的新书,书中介绍了402个时间使用技巧。看了目录,立即被第六章"马上就能学会的超...

weixin_39792686的博客 576

瑞萨RA6M4平台I2C驱动移植实战:MPU6050传感器集成指南

本文详细介绍了在瑞萨RA6M4平台上进行I2C驱动移植并集成MPU6050传感器的实战指南。通过FSP配置工具添加I2C主栈,适配MPU6050官方驱动,实现传感器数据读取与调试,为嵌入式开发提供完整的解决方案。

banana的博客 109

VFP 常用文本函数

1、去空格函数 ATTL() 2、取左与取右函数 LEFT( ) RIGHT( ) 3、取中间 SUBSTR( ) 4、REPLICATE( ) 重复字符 ?REPLICATE( " ",10) && 返回10个空格的字符串 5、STRTRAN( ) 有文本替换函数 tcstring = STRTRAN(tcstring,lctable03,lcalias03) ...

weixin_41999297的博客 3214

R链式中介:如何一次性生成4个变量所有可能的链式中介结果?(含结果解读与粗略作图)#bruceR#ggplot2

一次性生成4个变量所能生成的24种链式中介并作图

weixin_64183017的博客 3236

CentOS 7升级GCC踩坑记:明明装了centos-release-scl,为啥找不到devtoolset-9-gcc-c++?

本文详细记录了在CentOS 7系统中升级GCC时遇到的`devtoolset-9-gcc-c++`不可用问题及其解决方案。通过分析`centos-release-scl`安装不完整的原因,提供了从清理残留、重新安装仓库配置到完整安装devtoolset-9工具链的全套操作指南,帮助开发者彻底解决类似环境配置难题。

weixin_29252171的博客 244

[导入]VFP 6.0的十个实用技巧

文章来源:http://blog.csdn.net/nm/archive/2000/08/14/4407.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2000/08/14/816558.html

weixin_30916125的博客 187

ABAP 平台注册 OAuth 2.0 Client 的完整实践指南(覆盖 Authorization Code、SAML Bearer 与 PKCE)

本文详述了在ABAP平台上注册入站OAuth 2.0 Client的关键技术和操作要点。文章面向SAP技术人员,系统梳理了前置条件(TLS/SSL、技术用户、授权对象)、配置路径(SOAUTH2事务)、授权类型差异(授权码、SAML Bearer、PKCE)等重要内容。特别强调入站与出站配置的区别,并提供了保密客户端和公有客户端的配置指引。文中所有事务码和参数均参考SAP官方文档,包含多个实用案例和权限配置建议,为ABAP系统作为OAuth 2.0授权服务器的实施提供全面指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 297

VFP6.0实用技巧集锦

如果单位里的局域网上安装有多台网络打印机,在使用VFP 6.0编制的程序进行打印操作时,可以选择其中的任意一台空闲的网络打印机进行打印,只须在执行命令:Report From。笔者认为,造成这一问题的原因是微软设计VFP时,只考虑了位于系统选单下的表单的复制和粘贴情况,即位于系统选单下的表单可使用复制及粘贴热键,而处于Windows下的表单完全脱离了系统选单的控制,因此复制及粘贴热键失效。用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。

加菲猫的VFP 204

农业生产AI决策系统架构设计解密:数据层-模型层-应用层核心逻辑

想象一下,在一个炎热的夏日,传统农田里的农民伯伯正满头大汗地检查每一株玉米是否缺水;而几公里外的智慧农场里,一位年轻农民正在空调房里滑动手机屏幕,看着AI系统自动生成的灌溉计划——这就是农业生产AI决策系统带来的改变。本文的目的,就是要揭开这个"智能农业大脑"的面纱,详细讲解它的"身体构造"(架构设计)和"工作原理"(核心逻辑)。我们将聚焦系统最核心的三个部分:数据层(收集农田信息)、模型层(分析信息并思考决策)和应用层(将决策告诉农民)。

AI智能探索者的博客 1326

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(三)

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(三)

宁波阿成的博客 524

VFP6.0隐藏主界面

VFP6.0隐藏Microsoft Visual Foxpro主窗口1、新建一个文本文件config.fpw   ,内容为   screen=off       2、设置主表单属性     with   mainform.             .windowtype=1             .desktop=.T.             .showwindow=2     endwith

Robert's Log 2317

【爬虫实战】Instagram博主图片爬取:模拟登录+滚动加载,轻松抓取高清美图

在当今社交媒体时代,Instagram作为全球最受欢迎的图片分享平台之一,汇聚了无数优质博主的海量精美图片。对于数据爱好者、营销分析师、AI训练数据收集者来说,如何高效、稳定地爬取Instagram博主的图片,成为了一项极具实用价值的技术挑战。然而,Instagram的反爬机制日益严格,传统的静态页面请求已经无法满足需求。本文将带你从零开始,使用2024-2025年最新技术栈,实现模拟登录、滚动加载、高清图片下载的全流程爬虫。✅ 全流程代码可直接运行✅ 模拟手机端请求绕过反爬。

2201_76125261的博客 596

VFP查询系统实现技巧六则

用VFP6.0编写完整的应用程序时查询系统往往是不可缺少的重要部分。而开发一个优秀的查询系统需要很多的应用技巧。由于工作原因,笔者经常开发查询系统模块,现将个人编程中总结的一些技巧介绍给大家,希望对读者的应用开发有所帮助。任务进度条的实现   在查询的过程中,如果数据较多,需要用户等待时,查询系统中应有进度条加以显示,才能使系统更加具有规范性。具体实现方法如下:   1.选择VFP的系统选单

飞夜的专栏 1901

多智能体系统在军事仿真中的应用:AI人工智能战略推演

本文旨在全面解析多智能体系统在军事仿真领域的应用技术,重点探讨AI驱动的战略推演系统的设计原理和实现方法。研究范围涵盖从基础理论到实际应用的完整技术栈。本文采用从理论到实践的递进结构,首先介绍核心概念,然后深入算法实现,最后展示实际应用案例和未来展望。多智能体系统(MAS):由多个相互作用的智能体组成的分布式系统军事仿真(Military Simulation):通过计算机模拟军事行动和战争场景战略推演(Strategic Wargaming):通过模拟推演评估军事战略的有效性更高保真度的仿真。

AI天才研究院 1777

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Vfp6的几个函数

几个为Vfp6写的函数,单位系统用vfp6开发。不打算升级的Vfp9.针对现在互联网时代所写的几个函数   Func Strextract(cSearchExpression, cBeginDelim , cEndDelim , nOccurrence)  *!* *******************************************  *!* Create By Alan

bill20100829的博客 1345

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VFP中实现超链接

超级链接功能可以使程序具备直接访问Internet的能力,不少优秀的软件都提供直接访问Internet的功能。如金山词霸2000在它的系统桌面上提供互联网资源;Microsoft的应用程序在其帮助菜单中提供Microsoft on the Web,这都是在系统内部直接访问Internet的典型例子。   为了在应用程序中实现直接访问Internet功能,只要能在程序中控制启动Internet浏览器

hylang的专栏 1979

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

硬浮点 VFP

硬浮点 VFP http://blog.chinaunix.net/uid-27875-id-3449290.html 转自:https://www.cnblogs.com/leaven/p/6244646.html 编译器对VFP的支持 一个浮点数操作最后是翻译成VFP指令,还是翻译成fpa,或者是softfloat是编译器决定的, 同时也得有OS的支持。 用arm-none-linux-...

chenxiuli0810的专栏 3119

VFP全面控制EXCEL

VFP全面控制EXCEL*------------------------------VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍:1.创建Excel对

popkiler的专栏 6555
上一篇: Web搜索引擎设计和实现分析
下一篇: Delphi控件的使用经验
普通网友
博客等级 码龄26年 3粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值