浏览Windows下位图的小程序
一、建立一个名为BMP.TXT的文本文件,使其包含指定盘上的所有位图文件名。本人的做法是使用FL.EXE,即键入FL *.BMP>BMP.TXT。
二、建立一个名为BMPLIST.DBF的数据库,包括NAME(字符型,长度为60)字段,PHOTO(通用型)字段。
三、编写一个小程序,将位图文件名转换成规范的格式存入NAME字段,并将该文件存入通用型PHOTO字段,源程序如下:
SET TALK OFF
USE BMPLIST
APPE FROM BMP.TXT SDF &&将BMP.TXT中的每一行作为记录存入NAME字段
DELE ALL FOR EMPTY(NAME) &&删除所有的空记录
PACK
ML=""
DO WHILE !EOF()
REPL NAME WITH ALLTRIM(UPPE(NAME)) &&将所有的记录转换成大写
NUM=AT(".BMP",NAME) &&找出后缀BMP在记录中的位置
IF NUM=0 &&表示该记录记载的是目录而不是文件
ML=ALLTRIM(NAME)+"\"
ELSE
REPL NAME WITH ML+SUBS(NAME,1,NUM+3) &&转换成位图文件含目录的全名
APPE GENE PHOTO FROM ALLTRIM(NAME) &&将该位图文件存入PHOTO字段
ENDIF
SKIP
ENDDO
DELE ALL FOR AT(".BMP",NAME)=0 &&删除只表示目录的记录
PACK
RETU
四、编写显示位图文件的程序:
SET TALK OFF
DEFI WIND MAIN TITL "Windows位图浏览";
FLOA SHAD GROW;
COLO SCHE 13;
FONT "宋体",12;
AT 2,2 SIZE 20,70 &&定义一个窗口用以显示位图
MOVE WIND MAIN CENT &&将该窗口置中
ACTI WIND MAIN &&打开该窗口
CLEA
USE BMPLIST
COPY TO ARRAY TM FIEL NAME &&将位图文件名放入数组
&&定义一个上弹式菜单,以位图文件名作为菜单项
XX=1
@3,0 MENU TM,ALEN(TM),10 TITL "位图名称列表"
DO WHILE .T.
READ MENU TO XX
IF XX=0
EXIT
ENDIF
LOCA FOR NAME=TM(XX)
@0,0 SAY PHOTO
WAIT "显示"+ALL TRIM(NAME)+"位图文件" WIND
ENDDO
SET COLO TO
SET TALK ON
CLEA
CLEA ALL
RETU
灵活地运用Foxpro for Windows中提供的GENERAL型字段,我们可以编写和上面相类似的程序来浏览其它的Windows对象,如OFFICE软件中的WORD文件和EXCEL文件等,并可以很方便地在自己的应用程序中实现与这些优秀软件的动态数据交换,有兴趣的朋友不妨一试。