|
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
复制代码
|
|