|
void value_exp2dlgitem (int dialog_id, char* exp_name, char* dlgitem_name) M# L/ S1 O4 V; K& ~, c/ b9 \
{/ v7 F# ]# A P8 J% O! o
double exp_value;; a$ n/ d7 P a4 N* I
char exp_defn[133]; 6 E3 l A3 o" c9 j2 l
char att_string1[100]="不存在名字为";/ Q! E& k. R0 G
char att_string2[]="的表达式!";
9 v* c6 Z. R. s3 H+ e/ l' h UF_STYLER_item_value_type_t data;+ X& m4 p! Q* @# ~) T
/* 查看是否存在某表达式. */8 F0 Y, r7 C+ Z+ m2 k! c2 Z, Y
if(UF_MODL_ask_exp(exp_name,exp_defn)!=0)
$ Q# X3 Q' p2 s {
4 [- { {6 s) a" m |& S strcat(att_string1,exp_name);$ O- L/ E9 K+ d4 Q6 n
strcat(att_string1,att_string2);/ `! n7 b" [* B+ J9 r
uc1601(att_string1,1);
$ K' w+ d% A" |5 E( T }
/ v0 b( n. T9 J* \. i% I8 z: w1 S* E6 ` else3 Z* v/ k* @* [6 ?4 x' y
{# u$ V, l- `0 g1 G# p% R( B
UF_MODL_eval_exp(exp_name,&exp_value);
7 R5 a2 R" N6 B5 e data.item_attr=UF_STYLER_VALUE;
% E: Q) i( b; S data.item_id=dlgitem_name;
5 l( i& Z: J( {5 O+ q, u& _ data.value.real=exp_value;8 L2 @$ y1 R' \7 |4 u# S! M+ ~
UF_STYLER_set_value(dialog_id,&data);
6 i8 V1 h7 H! c R! ] }( _/ [ @( y/ n( a8 t- |
}
* u- \, I3 E" W4 {int BLOCK_construct_cb ( int dialog_id,void * client_data, UF_STYLER_item_value_type_p_t callback_data)
' o) n: M( X/ v{) T9 k/ i4 h$ G+ Z: W( J
.......
& P! a3 t- Z6 X9 Q- bchar exp_name_1[]="length";
( V% t4 z- T4 h$ F2 B6 o% Ychar dlgitem_name_1[]="BLOCK_LENGTH";
* C: H4 i$ P1 X% A. i& z* v Uvalue_exp2dlgitem (dialog_id, exp_name_1, dlgitem_name_1);
8 j% Q* `0 |1 F% J3 K6 z0 g....; X: h2 \# T" y/ }# m- }; x
}* Q' h& y. q8 S2 @1 Z a. R+ ]2 T
以上代码中的自定义函数void value_exp2dlgitem()期望实现将ug窗口中模型的表达式的值传递给对应的dialog控件,整个代码编译无误,但运行后发现并没有实现该功能,测试后发现是自定义函数中的红色语句没起作用,跪求高手解答。3 Q, E9 n9 k: E% p1 H0 M ]& y
|
|