FORM中列表框(LIST)的使用详解
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
沙发舒服,感谢楼主~ 感谢楼主,赞一个! 学习咯感谢楼主 谢谢分享! 楼主你好,小生正在慢慢学习FORM和list,感谢楼主的知识分享
我尝试把form源码保存为ListForm.form然后skill 源码添加form的路径,加载后运行,提示
E- *Error* axlFormDisplay: argument #1 should be any user-defined (other) type (type template = "o") - nil
请教下进一步调试的思路应该是怎么样的呢?
Dio 发表于 2015-2-4 15:12
楼主你好,小生正在慢慢学习FORM和list,感谢楼主的知识分享
我尝试把form源码保存为ListForm.form然 ...
出现这种问题一般都是form文件格式有错误。
你可以先使用axlFormTest测试Form是否能够正常显示。 vivienluo 发表于 2015-2-4 17:15
出现这种问题一般都是form文件格式有错误。
你可以先使用axlFormTest测试Form是否能够正常显示。
是的,form里面多了个乱码,不过后来正常调入form之后list框是空白,看来.il的一些语句我还要看下 学习了,讲的很详细。 有获取list里所有内容的函数?
页:
[1]
2