马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 Free-Lancer 于 2014-10-17 07:53 编辑
 - ;;有回调函数或关联动作的 radio 组定义
- ;; _$klst ---- radio 组函数名或 函数名列表
- ;; _$symL ---- 函数名或函数名列表,默认值
- ;; _$callbackL -- 回调函数或列表,string
- (defun XD::Dcl:RadioAction (_$klst _$symL _$callbackL / _gRadioAction)
- (defun _gRadioAction (keylst sym _$callback)
- (mapcar
- '(lambda (x)
- (action_tile
- x
- (strcat
- "(if "
- (vl-symbol-name sym)
- "(set_tile \""
- (vl-symbol-name sym)
- "\" \"0\"))"
- "(setq "
- (vl-symbol-name sym)
- " $key)"
- "(set_tile $key \"1\")"
- (if _$callback
- (strcat "(" _$callback ")")
- ""
- )
- )
- )
- )
- (vl-symbol-value keylst)
- )
- )
- (XD::DCL:RadioInit _$klst _$symL)
- (if (listp _$symL)
- (while _$klst
- (_gRadioAction (car _$klst) (car _$symL) (car _$callbackL))
- (setq _$klst (cdr _$klst)
- _$symL (cdr _$symL)
- _$callbackL (cdr _$callbackL)
- )
- )
- (_gRadioAction _$klst _$symL _$callbackL)
- )
- )
|