在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1725|回复: 9

[求助] 如何将程序的结果通过form进行输出

[复制链接]
发表于 2022-8-23 16:23:31 | 显示全部楼层 |阅读模式
20资产
比如我写了一个程序:
procedure(test()
  a=1
  b=2
  c=a+b

理论上来讲,程序运行完,应该能得到结果“3”
怎么样才能通过一个form或者field将这个程序的运行结果输出出来?
恳请各位大神帮帮忙

最佳答案

查看完整内容

procedure(form_test() testprocedure() Myinput1=hiCreateFloatField( ?name 'Myinput1 ?prompt "input1" ?value 1.0*a) Myinput2=hiCreateFloatField( ?name 'Myinput2 ?prompt "input2" ?value 1.0*b) Myoutput=hiCreateFloatField( ?name 'Myoutput ?prompt "output" ?value 1.0*c) MyForm=hiCreateAppForm( ?name 'MyForm ?formTitle "TEST" ?fields list(My ...
发表于 2022-8-23 16:23:32 | 显示全部楼层


Van·Darkholme 发表于 2022-8-23 18:34
procedure(form_test()
  Myinput1=hiCreateIntField(
    ?name 'Myinput1


procedure(form_test()
  testprocedure()
  Myinput1=hiCreateFloatField(
    ?name 'Myinput1
    ?prompt "input1"
    ?value 1.0*a)

  Myinput2=hiCreateFloatField(
    ?name 'Myinput2
    ?prompt "input2"
    ?value 1.0*b)

  Myoutput=hiCreateFloatField(
    ?name 'Myoutput
    ?prompt "output"
    ?value 1.0*c)

  MyForm=hiCreateAppForm(
    ?name 'MyForm
    ?formTitle "TEST"
    ?fields list(Myinput1 Myinput2 Myoutput)
    ?buttonLayout 'OKCancelApply
    ?callback "update_form()"
    )
  hiDisplayForm('MyForm)
)

procedure(testprocedure()
    a=1
    b=2
    c=a+b
)

procedure(update_form()
    MyForm->Myoutput->value = Myinput1->value + Myinput2->value
)

hiSetBindKey("Layout" "Shift<Key>8" "form_test()")

捕获.PNG
发表于 2022-8-23 18:10:51 | 显示全部楼层
1)先创建一个Field 的GUI, 其中Field~>value 等于你算好的值; 2)再创建一个Form 的GUI,把Field加入到Form上作为输入选项; 3) 打开Form if that is what you want
 楼主| 发表于 2022-8-23 18:34:00 | 显示全部楼层


amodaman 发表于 2022-8-23 18:10
1)先创建一个Field 的GUI, 其中Field~>value 等于你算好的值; 2)再创建一个Form 的GUI,把Field加入到Form ...


procedure(form_test()
  Myinput1=hiCreateIntField(
    ?name 'Myinput1
    ?prompt "input1"
    )
  Myinput2=hiCreateIntField(
    ?name 'Myinput2
    ?prompt "input2"
    )
  Myoutput=hiCreateIntField(
    ?name 'Myoutput
    ?prompt "output"
    ?value "testprocedure()"
    )
  MyForm=hiCreateAppForm(
    ?name 'MyForm
    ?formTitle "TEST"
    ?fields list(Myinput1 Myinput2 Myoutput)
    ?buttonLayout 'OKCancelApply
    )
  hiDisplayForm('MyForm)
)

procedure(testprocedure()
    a=1
    b=2
    c=a+b
)

hiSetBindKey("Layout" "Shift<Key>8" "form_test()")
老哥,我这么写的,不太行。在output那里使用?callback “testprecedure()”也不行,output那一栏无法输出a+b的结果

 楼主| 发表于 2022-8-24 09:27:27 | 显示全部楼层


Van·Darkholme 发表于 2022-8-23 18:34
procedure(form_test()
  Myinput1=hiCreateIntField(
    ?name 'Myinput1


Thank you sir♂非常感谢提供思路,完美解决了我的问题。我改成下面这个样子了:
procedure(form_test()
  Myinput1=hiCreateIntField(
    ?name 'Myinput1
    ?prompt "input1"
    )
  Myinput2=hiCreateIntField(
    ?name 'Myinput2
    ?prompt "input2"
    )
  Myoutput=hiCreateIntField(
    ?name 'Myoutput
    ?prompt "output"
    )
  MyForm=hiCreateAppForm(
    ?name 'MyForm
    ?formTitle "TEST"
    ?fields list(Myinput1 Myinput2 Myoutput)
    ?callback "testprocedure()"
    ?buttonLayout 'OKCancelApply
    )
  hiDisplayForm('MyForm)
)

procedure(testprocedure()
    MyForm->Myoutput->value = Myinput1->value + Myinput2->value
)

hiSetBindKey("Layout" "Shift<Key>8" "form_test()")


发表于 2022-8-24 11:32:55 | 显示全部楼层
return c
 楼主| 发表于 2022-8-24 14:56:37 | 显示全部楼层


return需要配合别的什么函数吗?还是直接加在上面程序里就可以
发表于 2022-8-24 16:42:14 | 显示全部楼层
procedure(test()
  a=1
  b=2
  c=a+b
return c

直接加在上面程序里就可以
 楼主| 发表于 2022-8-25 09:11:21 | 显示全部楼层


ncash0933 发表于 2022-8-24 16:42
procedure(test()
  a=1
  b=2


不太行,返回不了,一直提示unbound variable - return
发表于 2022-9-26 16:57:36 | 显示全部楼层


Van·Darkholme 发表于 2022-8-25 09:11
不太行,返回不了,一直提示unbound variable - return


在prog()下return才有意义
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-19 01:57 , Processed in 0.021694 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表