Тема: Как победить включение\выключение элемента
Пробовал и "mode_tile" и "is_enabled" , но что-то не получается.
Смысл такой:
До выбора поля "Другой" поле "Число знаков" должно быть не активно.
Подскажите пожалуйста.
Текст LISP:
(DEFUN C:prb (/ chis nabor nn znac t2 dim ch ch1 zn2) (alert "Выберете строки содержащие \nчиловые значения, для \nдольнейшей операции с ними" ) (SETQ dim (getvar "dimzin") nabor (SSGET '((0 . "*text"))) nn (SSLENGTH nabor) i -1 ch1 1 zn2 1 ) (if (< (setq dcl_id (load_dialog "D:\\Геодезия\\Лисп\\My1.DCL")) 0 ) (exit) ) (new_dialog "my_dial" dcl_id) (action_tile "accept" (strcat "(setq ch (atof (get_tile \"chislo\")))" "(setq znak (atoi (get_tile \"zzn\")))" "(done_dialog)" ) ) (action_tile "r1" "(setq ch1 1)" ) (action_tile "r2" "(setq ch1 2)" ) (action_tile "r3" "(setq ch1 3)" ) (action_tile "r4" "(setq ch1 4)" ) (action_tile "c1" (strcat "(setq zn2 1)" "(mode_tile \"zzn\" 1)" )) (action_tile "c3" "(setq zn2 3)" ) (action_tile "c4" "(setq zn2 4)" ) (action_tile "c5" "(setq zn2 5)" ) (action_tile "c6" "(setq zn2 6)" ) (action_tile "c7" "(setq zn2 7)" ) (start_dialog) (setvar "dimzin" 1) (REPEAT nn (setq r2 (vl-string-subst "." "," (CDR (ASSOC 1 (ENTGET (SSNAME nabor (SETQ i (1+ i))))) ) ) ) (if (wcmatch r2 "*@*") () (progn (SETQ chis (ATOF r2) z2 (cond ((= zn2 1) (- (strlen (vl-string-subst "" "." r2)) (strlen (rtos (atof r2) 2 0)) ) ) ((= zn2 3) 0) ((= zn2 4) 1) ((= zn2 5) 2) ((= zn2 6) 3) ((= zn2 7) znak) ) t2 (ENTGET (SSNAME nabor i) ) znac (cond ((= ch1 1) (+ ch chis)) ((= ch1 2) (- ch chis)) ((= ch1 3) (* ch chis)) ((= ch1 4) (/ chis ch)) ) t2 (SUBST (CONS 1 (rtos znac 2 z2) ) (ASSOC 1 t2) t2 ) ) (entmod t2) (entupd (entlast)) ) ) ) (setvar "dimzin" dim) (unload_dialog dcl_id) (princ) )
файл DCL
my_dial: dialog{label="Калькулятор"; :row{label=""; :column{label="";children_fixed_height=true; :radio_column{label="Чё делать будем?";key="k1"; :radio_button{label="число + набор";key="r1";value="1";} :radio_button{label="число - набор";key="r2";value="0";} :radio_button{label="число * набор";key="r3";value="0";} :radio_button{label="набор / число";key="r4";value="0";} } :edit_box{label="Число"; key="chislo"; value="0"; edit_width=6;} } :column{label="";children_alignment=top; :radio_column{label="Число знаков после запятой?";key="c01"; :radio_button{label="как в исходном";key="c1";value="1";action="(mode_tile \"zzn\" 1)";} :radio_button{label="нет";key="c3";value="0";action="(mode_tile \"zzn\" 1)";} :radio_button{label="1";key="c4";value="0";action="(mode_tile \"zzn\" 1)";} :radio_button{label="2";key="c5";value="0";action="(mode_tile \"zzn\" 1)";} :radio_button{label="3";key="c6";value="0";action="(mode_tile \"zzn\" 1)";} :radio_button{label="другое";key="c7";value="0";action="(mode_tile \"zzn\" 0)";} } :edit_box{label="Число знаков"; key="zzn"; value="0"; edit_width=6;} }} ok_button; }