| 
 | 
 
LIST列表框可使用户方便的选择某项或同时选择多项。LIST中包含了多个选项清单。 
其显示效果如下: 
 
 
 
在FORM中,LIST定义下FIELD字段部分,通过关键词LIST定义,方法如下: 
LIST基本结构如下: 
 
- FIELD label
 
 - FLOC x y
 
 - LIST "" w h
 
 - list_options
 
 - ENDFIELD
 
  复制代码 
例如: 
 
- FIELD listTest             ;定义FIELD字段
 
 - FLOC 1 3                    ;定义FIELD坐标位置
 
 - LIST "" 18 6              ;定义LIST列表框
 
 - ENDFIELD                 ;结束FIELD
 
  复制代码 
说明: 
LIST基本结构为LIST "" w h , 其中LIST后面的双引号必须保留,请双引号中间无任何字符,w表示的是LIST的宽度,h表示的是LIST的高度,当LIST中选项过多或过长时,LIST会自动显示水平或垂直滚动条,不需要手动设置。 
list可选项list_options可设置LIST中个项如何排序,当设置为OPTIONS sort时,会自动以数字、字母增序排列,比如最开始的图片,当设置为SORT时显示效果看下图,注意其中的区别: 
 
 
 
 
list_options还可设置为ALPHANUMSORT、PRETTYPRINT。其中的区别此处就不多说了,可以自己去测试下。 
 
LIST默认是只能选择单项的,如果需要选择多项,可在上面说的OPTIONS后面加关键词 multiselect实现多选。例如OPTIONS PRETTYPRINT multiselect 
 
下面介绍下skill中常用的LIST操作AXL函数: 
axlFormListOptions 用于设置是否双击进行选择,LIST默认的是单击选择。 
axlFormListDeleteAll 用于删除LIST中所有的LIST项 
axlFormListSelect 用于选择LIST中某一个LIST项 
axlFormListGetItem 用于获取指定索引的LIST项,比如获取排在第三个的LIST项。 
axlFormListAddItem 用于向LIST中添加指定的项 
axlFormListDeleteItem 用于向LIST中删除指定的项 
axlFormListGetSelCount 用于获取LIST中选择个数,仅在LIST设置为多选的情况下有效。 
axlFormListGetSelItems 用于获取LIST中选择的项,仅在LIST设置为多选的情况下有效。 
axlFormListSelAll 选中LIST中所有的项,仅在LIST设置为多选的情况下有效。 
 
 
更多关于LIST的操作,可回复本贴进行讨论。。。 
 
本列的详细代码如下: 
FORM文件: 
- FILE_TYPE=FORM_DEFN VERSION=2       
 
 - FORM                                                        
 
 - FIXED                                                      
 
 - PORT 20 4                                             
 
 - HEADER "FORM LIST TEST"               
 
  
- TILE  
 
 -                                  
 
 - TEXT "LIST列表框测试"        
 
 - TLOC 1 1                        
 
 - ENDTEXT                                
 
  
- FIELD listTest
 
 - FLOC 1 3
 
 - LIST "" 18 6
 
 - OPTIONS PRETTYPRINT multiselect
 
 - ENDFIELD
 
  
- ENDTILE                            
 
 - ENDFORM
 
  复制代码 
SKILL文件:- defun( formtest ()
 
 -         ;axlFormTest("./ListForm.form")
 
 -         form = axlFormCreate((gensym) "./ListForm.form" nil nil t)
 
 -         axlFormDisplay(form)
 
 -         layer = axlGetParam("paramLayerGroup:ETCH")->groupmembers
 
 -         axlFormListAddItem(form "listTest" layer -1)
 
 - );end defun
 
  复制代码 
 
 
 |   
 
 
 
 |