荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: taotiger (一不做二不休三不回头), 信区: Program
标  题: VFP编程技巧六则
发信站: BBS 荔园晨风站 (Sat Oct  2 10:05:39 1999), 转信


  一、在VFP 5.0中表格打印时没有响应以及不能对齐的原因
  在VFP5.0中处理表格打印时,在最后都需加一句set printer to
,该语句的功能就是将打印缓冲器内容送到打印机。至于表格不能对
齐是因为字体原因,主要是数字、字母等,Windows中许多字体的不同
字符的宽度是不同的(如I和W),因此您要选字符宽度相同的字体,
如宋体等中文字体就行,?和@...say都可以跟font子句,如所有输出
到打印机的语句都可以用如下语句:
  ?′name′font′宋体′或@2,5 say′name′font′宋体′

  二、运行表单时出现name属性错误的处理

  一位朋友在前不久用do form frmcx.scx运行一个表单后,并将
该表单的name属性设为frmcx,执行_SCREEN.frmcx.caption=“kkkkkk
”,会出现“不能识别成员frmcx”的错误。其实,产生这种情况的原
因很简单,作为创建的最外层容器对象(一般是表单)不能直接用其
名称调用,而应将其赋给一个变量,然后用这个变量名来调用,比如
用如下语句:
  do form frmcx name frmcx

  这样就可以用frmcx来调用这个表单了,在这里frmcx是一个变量
,随着程序的运行结束,该变量也会释放,这时再用该变量来调用此
表单就不行了,为了使它不释放,可在上面的语句后面加linked子句
,即:
  do form frmcx name frmcx linked

  三、用LostFocus事件处理组合框失去焦点

  有些朋友在处理这一动作时往往使用click事件,而不加以对
lostfocus事件的使用,即当光标离开该文本框时对其它文本框作相应
设置,而没离开之前,说明您的输入还没有最后确定,这时一般也不
需要对其它文本框设置,如更进一步想在没离开之前就将结果反映到
其它文本框中,那要使用keypree事件,即每键入一个字符,就对其它
文本做出设置。您的方法之所以会不稳定,就是因为使用了click事件
,即用鼠标点了就起作用,而没点(如按回车键)就不起作用。

  四、使用鼠标右键获得以前曾输入过的数据

  按鼠标右键得出以前输入过的数据,比如在人事档案中,都是先
输入每个人的基本资料,在业务处理中又要输入他的名称及有关信息
,通常是按鼠标右键显出他的个人资料。再双击鼠标或按确定按钮,
即将有关信息输入。用表单或控件的rightclick事件接收鼠标右键,
在其事件代码中编入相应程序,如根据当前显示的人名查询其相关资
料,并打开另一表单将资料显示出来,表单上可设一确定按钮,按了
该按钮后,将相应数据存入相应的控件或变量中即可。

  五、以ASCII方式对数据库进行加密的方法

  在一般情况下,我们往往用低级函数直接改写数据库内容,以达
到加密数据库的目的。现在,我以一个比较简单易行的方法来加以实
现,即将数据全部以字符的ASCⅡ码方式存入数据库(数值和日期等
先转换为字符),在存之前先用一加密子程序(最好用函数的方式调
用)把ASCⅡ码用一个或几个固定数值与其加、减、乘、除以后再存
入数据库,提取数据时用一解密子程序做逆运算即可。

  六、实现将VFP5.0交叉数据表以及VFP 5.0交叉数据表向导生成
的“Qpr”文件编译成EXE后正确运行

  1)将VFP目录下的vfpxtab.prg文件添加到项目管理器中;
  2)将vfpxtab.prg第189行的语句中的第3个和第4个“+”前各
加一个单引号,否则编译会出错,这是VFP的一个BUG;
  3)将qpr文件中的(_GENXTAB)改为vfpxtab。
--
        十  步  杀  一  人

          千  里  不  留  行

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.29.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店