EDA365电子工程师网

标题: 关于FORM中TRACKBAR的最大值,最小值设置问题 [打印本页]

作者: talient    时间: 2012-12-27 13:25
标题: 关于FORM中TRACKBAR的最大值,最小值设置问题
在帮助文档中是这么描述的:

TRACKBAR
Provides a slider bar for setting integer values. The TRACKBAR keyword takes both a width and height and the bar may be either horizontal or vertical.
It is important to set both a minimum and maximum integer value. This can be done from the form file with the MIN and MAX keywords or at run-time by axlFormSetFieldLimits.


可是我试了以上两种方法,无论怎样都不成功,即设置不了上下限。
求帮助!!!
作者: talient    时间: 2013-1-11 15:14
顶一下,求帮助啊!
作者: betamelody    时间: 2013-1-11 15:25
没有用过这个控件,帖下代码看看?
作者: talient    时间: 2013-1-11 16:44
betamelody 发表于 2013-1-11 15:25
没有用过这个控件,帖下代码看看?

其实很简单的一段代码,
testForm是随便建个form,然后里面加个TRACKBAR控件“percentage”
testForm:
  1. FILE_TYPE=FORM_DEFN VERSION=2
  2. FORM
  3. FIXED
  4. PORT 45 15
  5. HEADER "Fill Hatching"
  6. TILE
  7. FIELD percentage
  8. FLOC 5 19
  9. TRACKBAR 30 6
  10. ENDFIELD
  11. ENDTILE
  12. ENDFORM
复制代码
main中添加:
  1. gForm = axlFormCreate((gensym) testForm '("C" "OUTER") 'testFormAction t)
  2. axlFormSetFieldLimits(gForm "percentage" 50 90)
  3. axlFormDisplay(gForm)
复制代码
理论上应该就可以了,滑动条的范围应该在50-90之间。
而axlFormGetField(gForm "percentage")的值却仍然是0~100.....

而且,就算在.form中设置成:
  1. FIELD percentage
  2. FLOC 5 19
  3. TRACKBAR 30 6
  4. MIN 50
  5. MAX 90
  6. ENDFIELD
复制代码
也没用。

作者: betamelody    时间: 2013-1-14 09:54
(doubleClick nil type "fixed" objType "form" isValueString nil infos nil form "temp1.form" fields nil isChanged t doneState 0 curValueInt 100 curValue 100 curField "percentage")
这个控件并不显示上限下限数值,curValueInt 100 curValue 100反映当前半分比值,所以可以写三个label显示上下限和当前值(当前值为计算所得)
比如50-90的trackbar,下限50上限90  当前值计算方法为50+0.4*gForm->curValueInt




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2