返回介绍

读取图中属性快的属性

发布于 2023-08-09 23:10:34 字数 1799 浏览 0 评论 0 收藏 0

增加一个按钮并为它添加按钮点击事件,在事件函数中添加如下代码:

procedure TForm1.Button1Click(Sender: TObject);
var
    modleSpace : IMxDrawBlockTableRecord  ;
    newIterator : IMxDrawBlockTableRecordIterator  ;
    pEnt        : IMxDrawEntity;
    pBlkRef     : IMxDrawBlockReference;
    pAttribute  : IMxDrawAttribute;
    tag         : WideString;
    text        : WideString;
    ii          : Integer;
 
   
begin
// 得到当前图形空间对象
modleSpace    := MxDrawApplication1.WorkingDatabase.CurrentSpace     ;
// 生成一个图纸空间对象浏览器
newIterator   := modleSpace.NewIterator  ;
 
// 遍历浏览器,得到每个实体
    if newIterator <> nil then
    begin
        while newIterator.Done() = False do
          begin
// 到实体对象
               pEnt := newIterator.GetEntity();
               newIterator.Step(True,False);
               if pEnt <> nil then
               begin
 
// 把实体对象转成块引用对象
               pEnt.QueryInterface(IMxDrawBlockReference, pBlkRef);
               if pBlkRef <> nil then
               begin
// 得到块对象名称
                    if pBlkRef.GetBlockName() = 'BLKNAME' then
                    begin
// 遍历块引用对象的属性
                         for ii := 0 to pBlkRef.AttributeCount -1 do
                         begin
// 得到属性对象
                            pAttribute := pBlkRef.AttributeItem(ii);
// 得到属性对象的文字,和tag.
                            tag := pAttribute.Get_Tag();
                            text := pAttribute.Get_TextString();
                            showmessage(tag + ':' + text);
                         end;
                    end;
               end;
               end;
          end;
    end;
 
     if text = '' then
     begin
        showmessage('没有发现块名为' + ' BLKNAME ' + '的块实体');
     end;
end;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文