|
void value_exp2dlgitem (int dialog_id, char* exp_name, char* dlgitem_name)
/ Q+ v( v8 @( q: \$ O3 G{
7 Y; V' C& L" l: n6 _+ p4 K4 L double exp_value;( F) f7 a+ \ N7 D- x3 G$ t
char exp_defn[133];
' r9 Z1 a7 m- u% Y; Q char att_string1[100]="不存在名字为";, k+ \' F+ C. S
char att_string2[]="的表达式!"; $ w& t4 F9 k1 J- D7 _3 g& y$ |/ P
UF_STYLER_item_value_type_t data;! B# x# Y, R9 d3 ^: f
/* 查看是否存在某表达式. */
, u& E( J4 X0 G* w% r7 M if(UF_MODL_ask_exp(exp_name,exp_defn)!=0)
; \% s/ h* j# i1 V& |1 f; U$ b {
1 n, F3 u0 }& I1 ] strcat(att_string1,exp_name);! u( {6 g, t. M: g9 S
strcat(att_string1,att_string2);
# c; h6 x O% l& G uc1601(att_string1,1);
5 g: O) h; l( {1 }0 n }
! d/ R5 W5 l8 G& C- U! c$ W else
5 l1 b7 ~. }6 B( @8 s* D& L {
: |( h6 y: l6 s# s7 i UF_MODL_eval_exp(exp_name,&exp_value);, h2 y4 n/ t$ Z, d
data.item_attr=UF_STYLER_VALUE;
- Q" H# I0 k% u* H3 O' }+ e data.item_id=dlgitem_name;
9 w/ J, D1 s: k- S3 E* W" j, O data.value.real=exp_value;
$ N1 w7 A3 Y3 R% A( y0 @8 Q# {5 e& J UF_STYLER_set_value(dialog_id,&data);
4 ]- y# Z1 Q. [( `3 q }# ?; C* v0 u) O, \* R
}( ?* n6 W: c/ t- ^/ P( V) c
int BLOCK_construct_cb ( int dialog_id,void * client_data, UF_STYLER_item_value_type_p_t callback_data)
" r6 `$ C- T/ A# o4 M ~7 B( ^{1 U8 }% v0 b$ y+ a: X$ `
.......# U* D h: c% X
char exp_name_1[]="length";
9 h0 D+ i/ E, N, _3 V$ U$ Zchar dlgitem_name_1[]="BLOCK_LENGTH";( N" ]- W* u0 H
value_exp2dlgitem (dialog_id, exp_name_1, dlgitem_name_1);
! H, q ~5 Z* `: I....9 N4 u B; n- n, U+ J
}8 _( u; @( \! y4 H+ X- J' @
以上代码中的自定义函数void value_exp2dlgitem()期望实现将ug窗口中模型的表达式的值传递给对应的dialog控件,整个代码编译无误,但运行后发现并没有实现该功能,测试后发现是自定义函数中的红色语句没起作用,跪求高手解答。
5 i, T; b5 V+ Y |
|