马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - ;|
- 在位编辑,支持鼠标下的任意文字,包括尺寸、块(任意嵌套块)内文字、属性、TEXT
- 参数:
- ent ---- 子实体(NENTSEL第一个图元)
- parent-- 父实体(NENTSEL最后一个图元(如果有))
- pt -- 鼠标点取位置(WCS)
- 返回值:
- T
- |;
- (defun XD::Entity:TextOnlineEdit (ent parent pt / class classname flags len
- mpt newtxt newvalue newwid repeatcount
- txt wid x y
- )
- (setq class (xdrx_getpropertyvalue ent "IsA"))
- (cond
- ((= "AcDbText" class)
- (setq txt (xdrx_getpropertyvalue ent "TextString"))
- )
- ((= "AcDbMText" class)
- (setq txt (xdrx_getpropertyvalue ent "Contents"))
- )
- ((= "AcDbAttribute" class)
- (setq txt (xdrx_getpropertyvalue ent "TextString"))
- )
- )
- (setq owner parent
- ent1 ent
- )
- (defun c:XD_ONLINE_EDIT_FORM_OnInitialize (/)
- (setq len (strlen txt))
- (c:XD_ONLINE_EDIT_TBOX_OnEditChanged txt)
- (dcl_Control_SetText XD_ONLINE_EDIT_TBOX txt)
- )
- (defun c:XD_ONLINE_EDIT_FORM_OnMouseEntered (/)
- (dcl_Control_SetFocus XD_ONLINE_EDIT_FORM)
- )
- (defun c:XD_ONLINE_EDIT_TBOX_OnMouseMove (Flags X Y /)
- (dcl_Control_SetFocus XD_ONLINE_EDIT_TBOX)
- )
- (defun c:XD_ONLINE_EDIT_FORM_OnCancel (/)
- (dcl_form_close XD_ONLINE_EDIT_TBOX)
- )
- (defun c:XD_ONLINE_EDIT_TBOX_OnEditChanged (NewValue /)
- (setq len (strlen NewValue)
- wid (dcl_Control_GetWidth XD_ONLINE_EDIT_TBOX)
- )
- (if (> len 6)
- (progn
- (setq newwid (+ 42 (* 6 (- len 6))))
- (dcl_Control_SetWidth XD_ONLINE_EDIT_TBOX newwid)
- (dcl_Control_SetWidth XD_ONLINE_EDIT_FORM newwid)
- )
- (progn
- (dcl_Control_SetWidth XD_ONLINE_EDIT_TBOX 42)
- (dcl_Control_SetWidth XD_ONLINE_EDIT_FORM 42)
- )
- )
- (princ)
- )
- (defun c:XD_ONLINE_EDIT_TBOX_OnKeyDown (Character RepeatCount Flags /)
- (princ)
- )
- (defun c:XD_ONLINE_EDIT_TBOX_OnUpdate (NewValue /)
- (princ)
- )
- (defun c:XD_ONLINE_EDIT_TBOX_OnReturnPressed (/)
- (setq newtxt (dcl_Control_GetText XD_ONLINE_EDIT_TBOX))
- (dcl_sendstring "(_cal)\n")
- (dcl_form_close XD_ONLINE_EDIT_TBOX)
- (princ)
- )
- (defun _cal ()
- (setq classname (car (xdrx_object_classname owner)))
- (cond
- ((= "DIMENSION" classname)
- (xdrx_setpropertyvalue owner "DimText" newtxt)
- )
- ((or
- (= "ATTRIB" classname)
- (= "INSERT" classname)
- (= "TEXT" classname)
- )
- (xdrx_setpropertyvalue ent1 "TextString" newtxt)
- )
- )
- (xdrx_object_regen owner)
- (princ)
- )
- (dcl_Project_Load (findfile "XDOB_ONLINE_EDIT.odcl") )
- (setq mpt (xdrx_document_GetMousePixel pt))
- (dcl_Form_Show XD_ONLINE_EDIT_FORM (car (last mpt)) (cadr (last mpt)))
- t
- )
需要的ODCL文件见附件
|