找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 18956|回复: 15
打印 上一主题 下一主题

【求助】UG/UIStyler/Single Select List/item设置

[复制链接]
跳转到指定楼层
1
发表于 2002-12-17 11:43:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
在UIStyler中的Single Select List中subitem设置函数如下
  
char *temp_1="001";  char *temp_2="002";
UF_STYLER_item_value_type_t input_to_dialog_data_strct;
  
input_to_dialog_data_strct.value.strings[0]=temp_1;
input_to_dialog_data_strct.value.strings[1]=temp_2;
input_to_dialog_data_strct.item_attr=UF_STYLER_SUBITEM_VALUES;
input_to_dialog_data_strct.item_id=CHANGE_ID_LIST;//对应的ID,
input_to_dialog_data_strct.count=2;
  
  UF_STYLER_set_value(dialog_id,[$input_to_dialog_data_strct)]
  
出现错误,对话框从Menu中根本不出现,
请教原因
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
16
发表于 2011-9-12 14:17:56 | 只看该作者

学习中。。。。。。
15
发表于 2003-3-6 21:40:18 | 只看该作者
spline wrote:
各位知道如何设置参数把single select list 清空吗?只设置count 为0和input_to_dialog_data_strct.value.strings= 0 似乎不行,有错误返回。

当然不行了,要用UF_STYLER_LIST_DELETE才行啊。
14
发表于 2003-3-6 21:15:09 | 只看该作者
各位知道如何设置参数把single select list 清空吗?只设置count 为0和input_to_dialog_data_strct.value.strings= 0 似乎不行,有错误返回。
13
发表于 2002-12-18 17:35:48 | 只看该作者
我估计是赋值错误
就是sprintf(buf,"strings[0]=%s,strings[0] );
这个地方错误,但用UF_UI_write_listing_window(buf); 查看,这个地方没发现什么错误,不过有他就不能运行,我也没看出什么错误来.
从一开始编程到现在,数据类型从头到尾的折磨我.
12
发表于 2002-12-18 17:23:41 | 只看该作者
斑竹,请恕在下愚昧,我看了半天,也没看出这哪儿多了一句,难道是该把UF_CALL(UF_UI_write_listing_window(buf)); 变成UF_UI_write_listing_window(buf); 吗?
11
发表于 2002-12-18 14:02:42 | 只看该作者
是呀,好长时间也没来了,忙得差不多了吧?
呵呵,错误找到了如下:
char buf[133];
。。。。。。。。。。。
sprintf(buf,"input_to_dialog_data_strct.value.strings[0]=%s   
\ninput_to_dialog_data_strct.value.strings[1]=%s   
  \ninput_to_dialog_data_strct.value.strings[2]=%s\n",
input_to_dialog_data_strct.value.strings[0],input_to_dialog_data_strct.value.strings
[1],input_to_dialog_data_strct.value.strings[2]);
UF_CALL(UF_UI_write_listing_window(buf));
就是多了这一句,在调试过程中这一句不显示错误,
让各位老兄费心了。。
10
发表于 2002-12-18 13:37:29 | 只看该作者
这两天没见,你又在瞎捣腾什么东西?我没有调试,但是给你两点建议:
  
1.
char* list[]={"001“,"002","003"};
...
input_to_dialog_data_strct.value.strings=list;
  
2.
  
对话框要放在application里面,并且application上一级文件夹路径在UG中注册过。
9
发表于 2002-12-18 13:21:35 | 只看该作者
整个代码如下:
int CHANGE_apply_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
  char buf[133];
  char temp[3][22]={"001","002","003"};
  char *string[100];
  int i;
  UF_STYLER_item_value_type_t input_to_dialog_data_strct;
  
     if ( UF_initialize() != 0)  
          return ( UF_UI_CB_CONTINUE_DIALOG );
  
   
  UF_UI_open_listing_window();
  sprintf(buf,"temp[0]=%s   \ntemp[1]=%s   \ntemp[2]=%s\n",temp[0],temp[0],temp[0]);
  UF_UI_write_listing_window(buf);
  for(i=0;i<3;i++)
    string=temp;
  UF_CALL(input_to_dialog_data_strct.value.strings=(char**)string);
  
  sprintf(buf,"input_to_dialog_data_strct.value.strings[0]=%s   \ninput_to_dialog_data_strct.value.strings[1]=%s   \ninput_to_dialog_data_strct.value.strings[2]=%s\n",input_to_dialog_data_strct.value.strings[0],input_to_dialog_data_strct.value.strings[1],input_to_dialog_data_strct.value.strings[2]);
  UF_CALL(UF_UI_write_listing_window(buf));
  
  UF_CALL(input_to_dialog_data_strct.item_attr=UF_STYLER_SUBITEM_VALUES);
  UF_CALL(input_to_dialog_data_strct.item_id=CHANGE_ID_LIST);
  UF_CALL(input_to_dialog_data_strct.count=3);
  
    UF_CALL(UF_STYLER_set_value(dialog_id,[$input_to_dialog_data_strct))]
  
     UF_terminate ();
    return (UF_UI_CB_CONTINUE_DIALOG);  
  
}
8
发表于 2002-12-18 11:58:06 | 只看该作者
这样应该是可以的,你再仔细检查一下有没有其它原因。
我不知道你做的东西是不是要与数据库连接,如果这样的话,读取可能有点烦琐。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-9-18 14:10 , Processed in 0.028694 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表