|
js中实现代码说明:
- function FindBlockAttrib()
- {
- var winWidth = 440;
- var winHeight = 140;
- var winLeft = (screen.width - winWidth) / 2;
- var winTop = (screen.height - winHeight) / 2 - 20;
-
- var str = 'dialogHeight:' + winHeight + 'px;dialogWidth:' + winWidth + 'px;dialogTop:' + winTop + 'px;dialogLeft:' + winLeft + 'px;resizable:yes;center:yes;status:no;'
-
- var rt = window.showModalDialog("Gettext.htm?tmp=" + Math.random(), "输入属性文字", str);
-
- var txt;
-
- if (typeof (rt) == "undefined") {
- return;
- } else {
- var arr = rt.split(",");
- txt = arr[0];
- }
-
- var ss = mxOcx.NewSelectionSet();
- var spFilte = mxOcx.NewResbuf();
-
- // 把块对象,当着过滤条件.
- spFilte.AddStringEx("INSERT", 5020);
-
- // 得到图上,所有块对象.
- ss.Select2(5, null, null, null, spFilte);
-
-
- // 遍历每个块.
- for (var i = 0; i < ss.Count; i++) {
- var ent = ss.Item(i);
- if (ent == null)
- continue;
- if (ent.ObjectName == "McDbBlockReference") {
- var blkref = ent;
- var j = 0;
- for (; j < blkref.AttributeCount; j++) {
- var attrib = blkref.AttributeItem(j);
- if (attrib.TextString == txt) {
- // 找到块属性。
- mxOcx.PutEntityInView(ent.ObjectID, 300);
-
- var dLen = mxOcx.ViewLongToDocCoord(80);
-
- // 绘制一个标记圆.
- mxOcx.DrawVectorCircle(ent.Position.x,
- ent.Position.y,
- dLen, 65280);
- return;
- }
- }
- }
- ent = null;
- }
-
-
- alert("没有找到块属性文字");
-
-
-
- // 在这里必须显示释放控件的COM对象指针.
- ss = null;
- spFilte = null;
- CollectGarbage();
- }
复制代码
|
|