做个体贴的程序员——给VFP程序添加“每日一贴”功能 为自己开发的软件做个"tips"--每日一贴，把你软件的特点、用法和小技巧放进去，可以让使用的人更容易地掌握软件的用法，做个体贴的程序员吧。 1．建立一个数据表来存入将显示的内容，每条记录存储一个操作提示，将其命名为tips.dbf。 字段名　　类型　　宽度 tips 　　　C 　　200
2．编写代码
在tips表单的Load事件中写入以下代码：
IF !FILE('tips.dbf')
CREATE TABLE table tips (tips c(200))
APPEND BLANK
REPLACE tips.tips WITH "tips中未添加内容，请打开数据表并添加数据。"
IF USED('tips')
USE
ENDIF
ENDIF
SELECT 0
USE tips
IF RECCOUNT() < 1
APPEND BLANK
REPLACE tips.tips WITH "请单击下一个按钮显示下一提示。"
ENDIF
通过RECCOUNT（）函数判断本数据表共有多少条记录，如果没有内容，将新增一条记录，内容为″未添加操作提示内容，请打开数据表并添加数据.″
IF FILE('lasttips.mem')
RESTORE FROM lasttips ADDITIVE
IF TYPE('gl-lasttips') !="N"
gl-lasttips=1
SAVE ALL LIKE gl-lasttips TO lasttips
ELSE
IF gl-lasttips>=RECCOUNT('tips')
gl-lasttips=1
SAVE ALL LIKE gl-lasttips TO lasttips
ELSE
gl-lasttips=gl-lasttips+1
SAVE ALL LIKE gl-lasttips TO lasttips
ENDIF
ENDIF
ELSE
gl-lasttips= 1
SAVE ALL LIKE gl-lasttips TO lasttips
ENDIF
GO gl-lasttips
内存变量文件lasttips.mem中的变量gl-lasttips用来存放本次操作时最后一次显示的操作提示内容，每次启动本表单时，将根据gl-lasttips的值再加1来显示下一条操作提示记录。
在"下一个"按钮的Click事件中录入以下代码：
IF FILE('lasttips.mem')
RESTORE FROM lasttips ADDITIVE
IF TYPE('gl-lasttips') != "N"
gl-lasttips = 1
SAVE ALL LIKE gl-lasttips TO lasttips
ELSE
IF gl-lasttips>=RECCOUNT('tips')
gl-lasttips=1
SAVE ALL LIKE gl-lasttips TO lasttips
ELSE
gl-lasttips=gl-lasttips+1
SAVE ALL LIKE gl-lasttips TO lasttips
ENDIF
ENDIF
ELSE
gl-lasttips=1
SAVE ALL LIKE gl-lasttips TO lasttips
ENDIF
GO gl-lasttips
THISFORM.text1.value=tips.tips
THISFORM.text1.refresh
由于用户按下按钮"下一个"时，将改变下一次进入本表单时显示的内容，这里也用gl-lasttips变量来保存，以确定下一次进入表单时将显示哪一条记录。
在复选框"程序启动时执行"的Click事件中录入：
IF THIS.value = 0
dummyval = 1
SAVE ALL LIKE dummyval TO notips.mem
ELSE
IF FILE('notips.mem')
DELETE FILE notips.mem
ENDIF
ENDIF
在"关闭"窗口中录入以下代码：
clea memory tipsalready
THISFORM.release
制作完上述的表单，"每日一贴"的功能基本上已完成，这时你可以把表单用"另存为类"菜单命令存成一个名为Tips的表单类，并将新建的表单类保存到类库tipofday.vcx中。制作完成表单类后，就可以在程序中调用这个表单类Tips，你可以在主程序中添加下面的代码来运行这个表单类：
SET CLASSLIB TO tipofday ADDITIVE
IF TYPE('tipoftheday')="U" .AND. TYPE('tipalready')="U"
PUBL tipoftheday, tipalready
tipoftheday = CREATEOBJECT("Tips")
tipoftheday.text1.value="请单击窗口右上角的X按钮退出。"
IF .NOT. FILE('notips.mem')
tipoftheday.show(1)
ENDI
tipalready = .T.
ENDI
IF .NOT. FILE('notip.mem')
tipoftheday.show(1)
ENDI
如果用户不选择"程序启动时执行" 这一项，内存文件notips.mem就不存在，此时就显示"每日一贴"表单，否则就不运行此表单。相应的代码在复选框的Click事件有判断，请参考上面的代码。
(廖斌、梁智)