VFP 5.0中实现带图标列表项

Author: 王俊 Date: 1998年 第20期 13版

  在Windows95中打开“我的电脑”,可以看到窗口中每一项目的面前都有一个小图标,这些图标代表着项目的类型,如果是文件夹,就显示“文件夹”图标,如果是文本文件,就显示“记事本” 图标。在资源管理器中,也是如此。这种带图标的显示方式,非常直观,笔者经过摸索,在VFP5.0(Visual FoxPro 5.0)中也实现了这样的功能。具体实现如下:
  1.新建一表单,往其中添加一个列表框和一个命令按钮。
  2.列表框和命令按钮的属性设置如下:^201301a^
  3.命令按钮的Click事件代码如下:
  &&往列表框中添加项目
  ThisForm.List1.List(1)=′MAIN.SCX′
  ThisForm.List1.List(2)=′FORM1.SCX′
  ThisForm.List1.List(3)=′DEMO1.DBF′
  ThisForm.List1.List(4)=′SALES.DBF′
  ThisForm.List1.List(5)=′TESTDATA.DBC′
  ThisForm.List1.List(6)=′MAIN.PRG′
  ThisForm.List1.List(7)=′MYFUNC.PRG′
  ThisForm.List1.List(8)=′SALES.FRX′
  ThisForm.List1.List(9)=′SS.FRX′
  ThisForm.List1.List(10)=′SALES.QPR′
  N=ThisForm.List1.ListCount
  FOR i=1 TO N
  &&从后缀名判断类型
  cExtension=UPPER(RIGHT(ThisForm.List1.List(I),3))
  &&bmp文件在当前目录下
  DO CASE
  CASE  cExtension=″DBF″
  ThisForm.List1.Picture(I)=″table.bmp″
  CASE  cExtension=″PRG″
  ThisForm.List1.Picture(I)=″apps.bmp″
  CASE  cExtension=″SCX″
  ThisForm.List1.Picture(I)=″forms.bmp″
  CASE  cExtension=″DBC″
  ThisForm.List1.Picture(I)=″database.bmp″
  CASE  cExtension=″FRX″
  ThisForm.List1.Picture(I)=″report.bmp″
  CASE  cExtension=″QPR″
  ThisForm.List1.Picture(I)=″query.bmp″
  OTHERWISE
  ThisForm.List1.Picture(I)=″fox.bmp″
  ENDCASE
  ENDFOR
  执行的结果是在每一项目前都有与项目类型对应的图标。将列表框换成组合框(ComboBox)也能达到同样效果。