iCAx开思工具箱

标题: 【求助】这个问题怎么解决,请进来看看!! [打印本页]

作者: wyhwww    时间: 2004-4-10 20:51
标题: 【求助】这个问题怎么解决,请进来看看!!
我在UG二次开发中,用UIStyler设计的一个对话框中有两个Property Pages Dialog Item,我想在OK BUTTON的actions中分别实现两个不同的功能,本来我是想对每个Property Pages Dialog Item实行UF_STYLER_ask_value()来进行控制,可OUTPUT参数没有可以用来判断我现在在哪一个Property Pages Dialog Item中实行。有谁可以帮一下我。
作者: pinkwall    时间: 2004-4-11 00:56
妳再每个property page上加一个button 分别实现不同的功能
作者: zzz    时间: 2004-4-11 11:28
callback_data里面可以直接读到当前的页面,然后可以根据页面来决定你的行为。
作者: wyhwww    时间: 2004-4-11 17:12
pinkwall :你的方法是可以实现,只是界面要变一下。
zzz:你的方法我还是不太明白,请讲的仔细点。
谢谢两位!!
   
  
作者: wyhwww    时间: 2004-4-11 18:01
各位老大:快来帮帮我啊!!
作者: wyhwww    时间: 2004-4-12 17:36
斑竹:
      还是不行,我试了很多遍!1我怎么找不到,“callback_data里面可以直接读到当前的页面”是什么意思?希望详细说一下。
作者: zzz    时间: 2004-4-12 21:38
page_number = callback_data->value.notify->page_switch.activated_page;
作者: wyhwww    时间: 2004-4-13 11:24
老大:
     我试了一下,还是不太明白page_number = callback_data->value.notify->page_switch.activated_page; 的意思。我现在把图贴上,希望能帮帮我。
     我这里是两个界面(见附件),我的思想是这样的,在标准型和修改型两个页面下调用的是尺寸不同的零件。我现在想在这两个页面下分别按OK,就可以调用。我在OK的actions函数中对标准型页面下的操作已经实现,当我要在修改型的页面下按下ok时,它调用的还是标准型页面下的操作。这个问题怎么解决!!
我的ok函数:
int NUTSPEC_ok_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
     if ( UF_initialize() != 0)  
          return ( UF_UI_CB_CONTINUE_DIALOG );
  
此处是标准型页面下调用零件的代码
(略)
  
此处是修改型页面下调用零件的代码
(略)
}
  
这两处代码之间的关系不会。
怎样在两个页面下分别按OK实现不同的功能!!
作者: wyhwww    时间: 2004-4-13 15:31
zzz :
     帮忙啊!!我是菜鸟!!正在研究中!!!
    
作者: wyhwww    时间: 2004-4-13 17:26
我顶!!!!
作者: wyhwww    时间: 2004-4-13 17:27
有谁知道,请帮忙!!
zzz可是个高手!!
佩服!!
作者: zzz    时间: 2004-4-14 08:58
if(page_number == 0)
{
标准型代码
}
else if(page_number == 1)
{
修改型代码
}
作者: wyhwww    时间: 2004-4-14 10:12
不行,我已经试过很多次了,程序执行到page_number = callback_data->value.notify->page_switch.activated_page这一句就不行了,好象就直接跳出了,不会执行下面的语句了。
作者: wyhwww    时间: 2004-4-14 10:53
我的程序:
int NUTSPEC_ok_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
  int page_number;
     /* Make sure User Function is available. */   
     if ( UF_initialize() != 0)  
          return ( UF_UI_CB_CONTINUE_DIALOG );
   page_number = callback_data->value.notify->page_switch.activated_page;
    
   if(page_number == 0)  
   {
  
标准型代码  
  
   }
else if(page_number == 1)  
   {
修改型代码  
  
        }
  
     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);                           
  
}
作者: zzz    时间: 2004-4-14 11:40
看看log file,调试一下了。
作者: zzz    时间: 2004-4-14 11:48
你的UG是什么版本?
作者: wyhwww    时间: 2004-4-14 12:04
UG NX1.0
作者: wyhwww    时间: 2004-4-14 12:26
难道真的没有其他方法了吗?
作者: wyhwww    时间: 2004-4-14 12:27
log file 在哪里?怎么调试?斑竹:我不懂!!
作者: zzz    时间: 2004-4-14 18:17
UGNX1.0是第一个出现property page的版本,可能会出问题。
log file在help-》unigraphics log file里面打开。里面有系统运行期间的各种信息,包括哪里出现错误。仔细看一下,对你定位错误很有帮助。
  
至于调试,那是程序开发的基本技术,这个不需要我来教吧。
作者: wyhwww    时间: 2004-4-15 20:30
我的问题还是解决不了,我再想应该有一个办法可以解决这个问题的。可我找不到,我调试了n遍,修改了n遍,可结果真是火!!有没有别的方法了呢?难道真要增加BUTTON键,那我的界面要稍微变一下了。哎!!帮忙啊!!!
作者: zzz    时间: 2004-4-16 09:12
把你的代码发上来看一下
作者: wyhwww    时间: 2004-4-16 09:18
斑竹:
  我把我的QQ给你:4617574,你加我好友!我把代码发给你看。这里总不太方便吧!!
作者: wyhwww    时间: 2004-4-16 10:27
斑竹:
     我终于搞懂了,哪里出了错!要先要命名一个交换的回调函数,在那里执行代码page_number = callback_data->value.notify->page_switch.activated_page; 然后在oK回调函数中对其进行操作!!
谢谢斑竹,对我的帮忙!!
作者: zzz    时间: 2004-4-16 11:47
不需要啊,这个在任何回调函数里面都是可以用的。
不过你的switch callback一般都是要定义的,不同的页面切换时肯定有些设置。
作者: wyhwww    时间: 2004-4-16 12:25
在别的回调函数中好象不可以用的,反正在NX1.0中是不行,我对程序调试了很多遍了,可在switch callback中去可以!!有可能象你说的那样在NX1.0中不行吧!不过,我很高兴能成功!!
作者: wyhwww    时间: 2004-4-16 20:35
我现在做这个标准件库已经没技术上的问题了,就等着我把它做出来吧!!




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