EDA365电子论坛网

标题: axlUIPrompt的值怎么传入另一个函数? [打印本页]

作者: lyh289114980    时间: 2015-3-6 13:16
标题: axlUIPrompt的值怎么传入另一个函数?

axlUIPrompt的值怎么传入另一个函数?
作者: 霹雳风雷    时间: 2015-3-6 13:19
定义变量,赋值到另一个函数,或者进行函数嵌套也行
作者: lyh289114980    时间: 2015-3-6 15:11

(defun test8 ()
testform=outfile("test.form" "w")
fprintf(testform "FILE_TYPE=FORM_DEFN VERSION=2\n")
fprintf(testform "FORM\n")
fprintf(testform "FIXED\n")
fprintf(testform "PORT 83 50\n")
fprintf(testform "HEADER \"testprintinfo\"\n")
fprintf(testform "TILE\n")

fprintf(testform "FIELD Add_Field\n")
fprintf(testform "FLOC 10 3\n")
fprintf(testform "MENUBUTTON \"add\" 10 3\n")
fprintf(testform "ENDFIELD\n")

fprintf(testform "FIELD print_Field\n")
fprintf(testform "FLOC 30 3\n")
fprintf(testform "MENUBUTTON \"Print\" 10 3\n")
fprintf(testform "ENDFIELD\n")
fprintf(testform "ENDTILE\n")
fprintf(testform "ENDFORM\n")
close(testform)
test8_form=axlFormCreate( (gensym) "test.form" nil 'test_action t)
axlFormDisplay(test8_form)
)

(defun test_action (test8_form)
(prog ()
  case(test8_form->curField
  ("Add_Field"
  add_fun()
  t)
  ("print_Field"
  print_fun()
  t)
  
  );end case

);end prog
)
/*--------------------------------------------
如果有需要才会执行添加动作
-------------------------------------------*/
(defun add_fun ()
add_sym=axlUIPrompt("Enter the type of symbol:" nil)
)
;*******************************************************************
(defun print_fun ()
print_list=list("aa" "bb" "cc")
when(add_sym
print_list=cons(add_sym print_list)
)
foreach(printlist print_list
printf("%s\n" printlist)
)
)

像上面这个代码就有问题:一定要我添加才能正常运行打印功能
我的目的是:我想打印出print_list这里面的三个元素,如果我想要往print_list添加n元素,然后也能打印print_list全部元素出来。请问要怎么写代码,谢谢!

作者: lyh289114980    时间: 2015-3-6 15:12
霹雳风雷 发表于 2015-3-6 13:19
定义变量,赋值到另一个函数,或者进行函数嵌套也行

你帮我看下怎么写,代码已经贴上。谢谢!

作者: XYX365    时间: 2015-3-6 16:17
lyh289114980 发表于 2015-3-6 15:11
(defun test8 ()
testform=outfile("test.form" "w")
fprintf(testform "FILE_TYPE=FORM_DEFN VERSION= ...

把這一行改一下
原來:
add_sym=axlUIPrompt("Enter the type of symbol:" nil)

修正:
add_sym=axlUIPrompt("Enter the type of symbol:" "")

axlUIPrompt函數第二個參數必須是字串

作者: lyh289114980    时间: 2015-3-6 16:33
XYX365 发表于 2015-3-6 16:17
把這一行改一下
原來:
add_sym=axlUIPrompt("Enter the type of symbol:" nil)

依然出错:E- *Error* eval: unbound variable - add_sym
PS:没有点击ADD按时就会出现上面错误信息,如果点击ADD按钮输入内容就不会。问题是我现在我一定要去添加才正常。最终目的就是我想添加就添加输出,不想添加也能正常运行输出。这里有个选择的过程哦

作者: XYX365    时间: 2015-3-6 16:54
lyh289114980 发表于 2015-3-6 16:33
依然出错:E- *Error* eval: unbound variable - add_sym
PS:没有点击ADD按时就会出现上面错误信息,如 ...

在下面這一行前面加入 add_sym = nil     when(add_sym



作者: lyh289114980    时间: 2015-3-9 09:31
XYX365 发表于 2015-3-6 16:54
在下面這一行前面加入 add_sym = nil     when(add_sym

还是不能达到我的目的,现在都加不了按照你说的。

作者: XYX365    时间: 2015-3-9 11:09
lyh289114980 发表于 2015-3-9 09:31
还是不能达到我的目的,现在都加不了按照你说的。

修改代碼如下
  1. (defun test8 ()
  2.         add_sym = nil
  3.         testform=outfile("test.form" "w")
  4.         fprintf(testform "FILE_TYPE=FORM_DEFN VERSION=2\n")
  5.         fprintf(testform "FORM\n")
  6.         fprintf(testform "FIXED\n")
  7.         fprintf(testform "PORT 83 50\n")
  8.         fprintf(testform "HEADER \"testprintinfo\"\n")
  9.         fprintf(testform "TILE\n")

  10.         fprintf(testform "FIELD Add_Field\n")
  11.         fprintf(testform "FLOC 10 3\n")
  12.         fprintf(testform "MENUBUTTON \"add\" 10 3\n")
  13.         fprintf(testform "ENDFIELD\n")

  14.         fprintf(testform "FIELD print_Field\n")
  15.         fprintf(testform "FLOC 30 3\n")
  16.         fprintf(testform "MENUBUTTON \"Print\" 10 3\n")
  17.         fprintf(testform "ENDFIELD\n")
  18.         fprintf(testform "ENDTILE\n")
  19.         fprintf(testform "ENDFORM\n")
  20.         close(testform)
  21.         test8_form=axlFormCreate( (gensym) "test.form" nil 'test_action t)
  22.         axlFormDisplay(test8_form)
  23. )
  24. (defun test_action (test8_form)
  25.         (prog ()
  26.                   case(test8_form->curField
  27.                           ("Add_Field"
  28.                                   add_fun()
  29.                                   t
  30.                           )
  31.                           ("print_Field"
  32.                                   print_fun()
  33.                                   t
  34.                           )
  35.                   );end case
  36.         );end prog
  37. )

  38. (defun add_fun ()
  39.         add_sym=axlUIPrompt("Enter the type of symbol:" "")
  40. )
  41. ;*******************************************************************
  42. (defun print_fun ()
  43.         print_list=list("aa" "bb" "cc")
  44.         when(add_sym
  45.                 print_list=cons(add_sym print_list)
  46.         )
  47.         foreach(printlist print_list
  48.                 printf("%s\n" printlist)
  49.         )
  50. )
复制代码



作者: lyh289114980    时间: 2015-3-9 18:24
XYX365 发表于 2015-3-9 11:09
修改代碼如下

THANKS YOU!COED CAN RUN NOW!





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2