|
void value_exp2dlgitem (int dialog_id, char* exp_name, char* dlgitem_name)
5 y0 P' U' X1 c) c' i/ B6 c. Q{
9 |( a9 o: v' C% k2 E3 q5 { double exp_value;9 b2 w% U/ ]& @8 n6 W. e# G7 j- y0 k* F
char exp_defn[133]; # V& O1 z3 O# X+ s; I3 X! U) [
char att_string1[100]="不存在名字为";( D4 A; d" M7 v0 B. ]8 y# X* O
char att_string2[]="的表达式!"; " `5 s* ]& N2 e, L& b
UF_STYLER_item_value_type_t data;
0 X! U; H; U7 Y2 }3 W /* 查看是否存在某表达式. */
8 h4 l; w, j3 h- r* G if(UF_MODL_ask_exp(exp_name,exp_defn)!=0)4 @8 L/ R7 G# Z$ P
{5 C2 p/ A/ \9 d
strcat(att_string1,exp_name);
) t* l6 {4 @) q. h4 u" c8 X5 y strcat(att_string1,att_string2);
8 V3 k# v+ r$ ^7 f; ?) b$ E+ L uc1601(att_string1,1);
1 I3 v+ U7 i! A, _6 K2 G* q, `( U5 t }
. |3 n' b- v, a4 n2 n3 [ else+ Z3 E8 E/ u( Z" Q+ v! o* j" h
{
( l9 D; y* N: w. B, ~ UF_MODL_eval_exp(exp_name,&exp_value);- e6 c9 b) Y0 @( b) |
data.item_attr=UF_STYLER_VALUE;$ x }. j- Q- H) A: g2 K. A% d. N
data.item_id=dlgitem_name;
; `8 d" h! T' Z2 i' h( q data.value.real=exp_value;
5 [1 J/ K9 H# x# u: U5 T3 Z UF_STYLER_set_value(dialog_id,&data);3 O7 a- u. b1 E. ?- V- _, I
}
7 B! |' i. I; @ [3 V/ a8 k}
4 _& o7 i- _# y) fint BLOCK_construct_cb ( int dialog_id,void * client_data, UF_STYLER_item_value_type_p_t callback_data)9 Y& Y' n. p; F: Z% ?8 b- w$ T
{
. w6 E- W. f& E) F' ^.......- W; l7 f( C: }/ x! c
char exp_name_1[]="length";( I D. R( B ~( ]- W& F
char dlgitem_name_1[]="BLOCK_LENGTH";/ d V. r y+ Z. J
value_exp2dlgitem (dialog_id, exp_name_1, dlgitem_name_1);$ c' d; K' C" j$ b4 n8 C) W+ @4 g
....
/ E! w$ ?+ v% B2 q: w}
/ E; n6 K+ [* g$ @$ p( q# R以上代码中的自定义函数void value_exp2dlgitem()期望实现将ug窗口中模型的表达式的值传递给对应的dialog控件,整个代码编译无误,但运行后发现并没有实现该功能,测试后发现是自定义函数中的红色语句没起作用,跪求高手解答。
, J/ D# {) N) Q0 L! T: X. k e" ^ |
|