|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 kevin890505 于 2014-8-18 21:54 编辑
一般skill大家都把form整合在il里面,但是自己写FORM的时候由于位置,尺寸等原因往往要测试无数次才能达到想要的效果,这个过程不知道大家感觉如何,反正我觉得好像盲人摸象一样,头大的很,今天偶然看到别的论坛有人发的这个工具,NBXX,很直观
而且转换完成后直接生产il文件,里面包含主函数以及form函数和form-action函数,很方便,人性化,对于创建一些复杂form应该有帮助
使用方法也比较简单:
1,先用koda软件手动绘制好你要的FORM,然后保存为KXF文件
2,再用xml2bnf把刚才的KXF转化为il文件
3,自己修改下里面的函数或者参数名,OK,接下来就自由发挥了
帅气的很
附上地址:
KODA:http://koda.darkhost.ru/page.php?id=download
XML2BNF:https://github.com/xml2bnf/xml2bnf
由于第二个网址貌似还不是有点卡,5M的东西下了我10分钟,还是把附件传上来好点,顺便一起传了吧
顺便加个例子瞧瞧,这个是用里面的模板界面转换成的form- (defun my_form ()
- time = getCurrentTime()
- time = parseString(time)
- day = nth(1 time)
- month = car(time)
- month = upperCase(month)
- year = nth(3 time)
- date = strcat(" Date: " day " " month " " year)
- CreateForm()
- myform=axlFormCreate( (gensym) form_file nil 'Form_Action t)
- axlFormDisplay(myform)
- axlUIWPrint(myform date)
- )
- (defun CreateForm ()
- drain()
- form_file = "TAB_form.form"
- myform = outfile(form_file "w")
- fprintf(myform "#Created by xml2bnf perl utility\n")
- fprintf(myform "#Coded by Venkata Ramanan/Santa Clara, CA\n\n")
- fprintf(myform "FILE_TYPE=FORM_DEFN VERSION=2\n")
- fprintf(myform "FORM AUTOGREYTEXT\n")
- fprintf(myform "FIXED\n")
- fprintf(myform "PORT 62 33\n")
- fprintf(myform "HEADER \"Form Field Type Demo\"\n\n")
- fprintf(myform "POPUP <ENUM>\"ITEM1\"\"0\",\"ITEM2\"\"1\",\"ITEM3\"\"2\",\"LAST ONE\"\"3\".\n\n")
- fprintf(myform "TILE\n\n")
- fprintf(myform "## TAB Definition Start## \n")
- fprintf(myform "TABSET \"tab\"\n")
- fprintf(myform "OPTIONS tabsetDispatch\n")
- fprintf(myform "FLOC 1 1\n")
- fprintf(myform "FSIZE 57 24\n\n")
- fprintf(myform "TAB \"TabSheet1\"\n\n")
- fprintf(myform "## Text Field in TAB## \n")
- fprintf(myform "TEXT \"Label1\"\n")
- fprintf(myform "FLOC 7 3\n")
- fprintf(myform "TGROUP \"TabSheet1\"\n")
- fprintf(myform "ENDTEXT\n\n")
- fprintf(myform "## Text Field in TAB## \n")
- fprintf(myform "TEXT \"Label1\"\n")
- fprintf(myform "FLOC 7 10\n")
- fprintf(myform "TGROUP \"TabSheet1\"\n")
- fprintf(myform "ENDTEXT\n\n")
- fprintf(myform "ENDTAB\n\n")
- fprintf(myform "TAB \"TabSheet2\"\n\n")
- fprintf(myform "## List Field in TAB## \n")
- fprintf(myform "FIELD List1\n")
- fprintf(myform "FLOC 7 6\n")
- fprintf(myform "LIST \" \" 14 6\n")
- fprintf(myform "FGROUP \"TabSheet2\"\n")
- fprintf(myform "ENDFIELD \n\n")
- fprintf(myform "## List Field in TAB## \n")
- fprintf(myform "FIELD List2\n")
- fprintf(myform "FLOC 30 6\n")
- fprintf(myform "LIST \" \" 15 6\n")
- fprintf(myform "FGROUP \"TabSheet2\"\n")
- fprintf(myform "ENDFIELD \n\n")
- fprintf(myform "## Text Field in TAB## \n")
- fprintf(myform "TEXT \"Label3\"\n")
- fprintf(myform "FLOC 7 4\n")
- fprintf(myform "TGROUP \"TabSheet2\"\n")
- fprintf(myform "ENDTEXT\n\n")
- fprintf(myform "## Text Field in TAB## \n")
- fprintf(myform "TEXT \"Label4\"\n")
- fprintf(myform "FLOC 31 4\n")
- fprintf(myform "TGROUP \"TabSheet2\"\n")
- fprintf(myform "ENDTEXT\n\n")
- fprintf(myform "ENDTAB\n\n")
- fprintf(myform "TAB \"TabSheet3\"\n\n")
- fprintf(myform "ENDTAB\n\n")
- fprintf(myform "ENDTABSET\n\n")
- fprintf(myform "ENDTILE\n\n")
- fprintf(myform "ENDFORM\n\n")
- close(myform)
- )
- (defun Form_Action (myform)
- (let (t1 item index field cnt)(printf "field/value %L = %L (int %L\n)"
- myform->cuRField myform->curValue, myform->curValueInt )
- (printf "doneState %L\n" myform->doneState )
- case(myform->curField
- ("List1"
- ;List Field
- ;Enter Action Here
-
- )
- ("List2"
- ;List Field
- ;Enter Action Here
-
- )
- )
- )
- if((nequal myform->doneState 0)
- axlFormClose(myform))
- )
复制代码 |
评分
-
查看全部评分
|