iCAx开思工具箱

标题: 【求助】如何获取用UISTYLER创建的列表框中的数据??急!!! [打印本页]

作者: lknoodle    时间: 2004-3-14 10:31
标题: 【求助】如何获取用UISTYLER创建的列表框中的数据??急!!!
如何获取用UISTYLER创建的列表框中的数据??急!!!现在急着用!
为什么用一般的方法不行?比如:UF_STYLER_ask_value( dialog_id, [$sel_data ) ]
作者: goodluckwu    时间: 2004-3-14 17:18
你可以使用UF_STYLER_ask_value
这是一个小例子(只是一个ok按钮的相应函数):
  
int C_BLOCK_ok_cb ( int dialog_id,
              void * client_data,
              UF_STYLER_item_value_type_p_t callback_data)
{
    //变量声明
   int i;  //循环变量
   UF_STYLER_item_value_type_t point[3];// 基点坐标
   UF_STYLER_item_value_type_t para[3]; // 参数
   double basepoint[3];
   char *edge_len[3];
   
   UF_FEATURE_SIGN sign = UF_NULLSIGN;
   tag_t blk_obj;
   
   /* Make sure User Function is available. */   
     if ( UF_initialize() != 0)  
           return ( UF_UI_CB_CONTINUE_DIALOG );
  
      /* ---- Enter your callback code here ----- */
//   uc1601("这是一个演示程序!!", true);
  
    for(i=0;i<3;i++)
    {
      point[i].item_attr=UF_STYLER_VALUE;
      para[i].item_attr=UF_STYLER_VALUE;
    }
   
    //进行对应的映射
    point[0].item_id=CREATE_B_REAL_1;
    point[1].item_id=CREATE_B_REAL_2;
    point[2].item_id=CREATE_B_REAL_3;
  
    para[0].item_id=CREATE_B_REAL_6;
    para[1].item_id=CREATE_B_REAL_7;
    para[2].item_id=CREATE_B_REAL_8;
  
    //访问对应的值
    for(i=0;i<3;i++)
    {
     UF_STYLER_ask_value(dialog_id,[$point[i])]
     UF_STYLER_ask_value(dialog_id,[$para[i])]
  
     basepoint[i]=point[i].value.real;
     edge_len[i]=para[i].value.string;
    }
  
    UF_UI_open_listing_window();
   UF_UI_write_listing_window("这是ug生成的参数");
  
    for(i=0;i<3;i++)
    {
     UF_UI_write_listing_window(point[i].value.string);
    }
    for(i=0;i<3;i++)
    {
     UF_UI_write_listing_window(para[i].value.string);
    }
  
    //创建长方体
    UF_CALL(UF_MODL_create_block1(sign, basepoint, edge_len, [$blk_obj))]
  
      UF_terminate ();
  
     /* Callback acknowledged, terminate dialog             */
     /* It is STRONGLY recommended that you exit your       */
     /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
     /* return ( UF_UI_CB_EXIT_DIALOG );                    */
     return (UF_UI_CB_EXIT_DIALOG);                           
  
}
作者: goodluckwu    时间: 2004-3-14 17:20
ft, 怎么全是表情啊。
顺便说一句,我手头没有ug(办公室的机器上才有),所以没有编译运行,可能会有小错误。你主要看看思路就是了。
作者: goodluckwu    时间: 2004-3-14 17:41
ft,编辑了一下,结果越改越乱,还不能删除。只好重新发一份了
  
int CREATE_B_OK_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
  //变量声明
  char res[256];
  logical log;
  int i,temp=0;  //循环变量
  UF_STYLER_item_value_type_t point[3];// 基点坐标
  UF_STYLER_item_value_type_t para[3]; // 参数
  double basepoint[3];
  char *edge_len[3];
  
  UF_FEATURE_SIGN sign = UF_NULLSIGN;
  tag_t blk_obj;
  
    
  
  /* Make sure User Function is available. */   
    if ( UF_initialize() != 0)  
          return ( UF_UI_CB_CONTINUE_DIALOG );
  
   for(i=0;i<3;i++)
   {
     point[i].item_attr=UF_STYLER_VALUE;
     para[i].item_attr=UF_STYLER_VALUE;
   }
  
   //进行对应的映射
   point[0].item_id=CREATE_B_REAL_1;
   point[1].item_id=CREATE_B_REAL_2;
   point[2].item_id=CREATE_B_REAL_3;
  
   para[0].item_id=CREATE_B_STR_6;
   para[1].item_id=CREATE_B_STR_7;
   para[2].item_id=CREATE_B_STR_8;
  
   //访问对应的值
   for(i=0;i<3;i++)
   {
    UF_STYLER_ask_value(dialog_id,[$point[i])]
    UF_STYLER_ask_value(dialog_id,[$para[i])]
  
    basepoint[i]=point[i].value.real;
    edge_len[i]=para[i].value.string;
   }
  
   //创建长方体
   temp=UF_CALL(UF_MODL_create_block1(sign, basepoint, edge_len, [$blk_obj))]
  
   //将返回值打印出来
  sprintf(res, "%d" , temp);
  UF_UI_open_listing_window();
  UF_UI_is_listing_window_open([$log)]
  if(log)
  {
    UF_UI_write_listing_window("create_block1()的返回值为:");
    UF_UI_write_listing_window(res);
    UF_UI_save_listing_window("create_b.txt");
    UF_UI_close_listing_window();
  }
  
     UF_terminate ();
  
    /* Callback acknowledged, terminate dialog             */
    /* It is STRONGLY recommended that you exit your       */
    /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
    /* return ( UF_UI_CB_EXIT_DIALOG );                    */
    return (UF_UI_CB_EXIT_DIALOG);                           
  
}
作者: lknoodle    时间: 2004-3-15 10:33
谢谢.非常感谢.请问有没有操作listbox 的?你看看我下面的代码有何问题:
UF_STYLER_item_value_type_t sel_data;
  sel_data.item_id = item_id;
  sel_data.item_attr  = UF_STYLER_SELECTION;
    UF_STYLER_ask_value( dialog_id, [$sel_data ) ]
作者: Tyrael    时间: 2004-3-15 11:36
ft,uistyler的文档里给出了所有控件的读写方法
作者: lknoodle    时间: 2004-3-15 12:29
谢谢,我找到了
作者: 789zenghong    时间: 2011-9-12 14:04
路过的,顶你一下:yan::yan:




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3