|
void value_exp2dlgitem (int dialog_id, char* exp_name, char* dlgitem_name)
5 ]* O% L3 n& Z% g, ^) j9 U' ]! g{" X7 a* a0 D2 M- Y" l$ Y
double exp_value;0 U6 u N5 d/ Z$ G
char exp_defn[133];
& Q$ I7 Q2 _" \' j! f char att_string1[100]="不存在名字为";
/ s% r3 r6 t6 {, \3 v5 ? char att_string2[]="的表达式!";
* ?* D/ _5 [' q+ B UF_STYLER_item_value_type_t data;
8 a/ Y4 K6 Y! ` Q /* 查看是否存在某表达式. */2 u; x& Y7 v8 p& k7 W! | }
if(UF_MODL_ask_exp(exp_name,exp_defn)!=0)
2 M! |/ v0 c R+ i. y9 s {/ Y7 j( z. L6 o" H6 o+ j
strcat(att_string1,exp_name);
( D4 I: [4 o' e: @+ Y6 }2 u' @ r strcat(att_string1,att_string2);$ ~0 V7 {- e4 G, Y2 p
uc1601(att_string1,1);6 V7 ]/ B) B h% \# _* m. K1 z
}7 a; X4 R" P/ R a) i2 n
else6 I# T: O) Y# J2 K
{5 o- R z, X8 A( f
UF_MODL_eval_exp(exp_name,&exp_value);5 ~. T- `: q* D {) ~5 T. {
data.item_attr=UF_STYLER_VALUE;
8 G' x8 A$ D6 w9 ]# Q data.item_id=dlgitem_name;
/ \' L4 \- c4 e data.value.real=exp_value;
. [) D6 O5 J# q7 K) v$ O1 \3 s UF_STYLER_set_value(dialog_id,&data);) t" P4 S- I# o/ l( X
}) R6 k$ N/ W/ G# H
}7 K% @* `0 U3 Z& x0 e
int BLOCK_construct_cb ( int dialog_id,void * client_data, UF_STYLER_item_value_type_p_t callback_data)4 X `7 v6 e( U7 L/ Y8 B
{
( A% m7 |" n( c. ?0 V8 }: {: m.......
3 l. F2 v7 A" |, l5 Y" Rchar exp_name_1[]="length";
1 C% R: {) T0 Y6 vchar dlgitem_name_1[]="BLOCK_LENGTH";' ]; ?1 |* [( e/ P# e, ^% |5 Q
value_exp2dlgitem (dialog_id, exp_name_1, dlgitem_name_1);! @2 B% f& G- S v1 N1 G
....
0 ^7 v+ D; O% j) ? R5 {. |} h! G/ J( v) W+ ?9 z+ h4 u- _
以上代码中的自定义函数void value_exp2dlgitem()期望实现将ug窗口中模型的表达式的值传递给对应的dialog控件,整个代码编译无误,但运行后发现并没有实现该功能,测试后发现是自定义函数中的红色语句没起作用,跪求高手解答。8 [# F+ k; b( @) R! I& @
|
|