pckite 发表于 2004-6-9 15:27:00

[VBA]关于字符串的唯一性标识问题

我在CAD中插入了一个MTEXT的字符串,发现这个字符串的ObjectID不是唯一的,也就是说当我插入新的字符串之后,它的ObjectID会被改变,难道它没有一个终身固定的标识吗?

cag 发表于 2004-6-9 15:35:00

可以用句柄

雪山飞狐_lzh 发表于 2004-6-9 15:42:00

当然没有<b>唯一性标识,你是新生成的实体么!每个实体的</b>ObjectID和Handle都不一样和字符串的内容无关

pckite 发表于 2004-6-9 17:04:00

<A name=25641><FONT color=#990000><B>lzh741206</B></FONT></A>:


我是说生成字符串实体A之后,A.ObjectID为2104788765,当我新插入一个字符串实体B之后,发现A.ObjectID为2871635120,由此看来,A的ObjectID是变的,也就是没有唯一性了,这样我找它的时候就难找了。

雪山飞狐_lzh 发表于 2004-6-9 21:23:00

不会吧,把你的代码贴上来看看

pckite 发表于 2004-6-10 08:13:00

显示其ObjectID程序是这样的:<BR>当生成字符串实体A之后,A.ObjectID为2104788765,当我新插入一个字符串实体B之后,发现A.ObjectID为2871635120,由此看来,A的ObjectID是变的


Sub ShowObjectID()<BR>Dim mtext As AcadMText<BR>Dim entry As AcadEntity<BR>Dim        mySelect As Variant


ThisDrawing.Utility.GetEntity entry, mySelect , "select a Text:"


MsgBox entry.ObjectID


End Sub

雪山飞狐_lzh 发表于 2004-6-10 08:33:00

不是要你的调试代码,我调试的结果是不变的,看看你的生成MText的代码

pckite 发表于 2004-6-10 09:05:00

我是直接在CAD里点击CAD自带的多行文字“A“来输入文字的,文字不是由程序生成,输入完新的字符串以后,关闭CAD文件后重新打开发现原来输入的字符串的ID号变了,有什么办法可以在关闭后重新打开文件时,可识别出来呢

efan2000 发表于 2004-6-10 10:34:00

ObjectID只有在打开CAD期间的各个文档中是唯一的,即下次打开时它会变化。


Handle在一张图中是唯一的,下次打开也不会改变。

pckite 发表于 2004-6-10 16:09:00

好的,用handle可以,谢谢各位!~<BR>
页: [1]
查看完整版本: [VBA]关于字符串的唯一性标识问题