注册控件导入控件把控件放到对话框中读取图中属性快的属性编译运行程序效果参考例程
注册控件

以管理员身份启动 控件\Bin\vc100\RegistMxDrawX.exe,以向系统注册控件。

导入控件

运行Delphi,导入控件的类型库,运行菜单命令,将弹出如下的对话框:


blob.png


类型库导入对话框:


blob.png


点击CreateUnit按钮,对导入的控件接口创建的代码定义:


blob.png


点击“Install”按钮把控件组件安装到Delphi中去。完成安装后,可以在控制面板看到控件的组件:


blob.png

把控件放到对话框中

新建一个Delphi工程。


blob.png


在对话框中,放入控件:


blob.png

读取图中属性快的属性

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


  • 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;
编译运行程序效果

编译运行,效果如下:


blob.png

参考例程

更多的实例代码在 控件\Src\MxDraw5.2\samples下可找到。如Delphi7Smaple,Delphi7Smaple2。

MxDraw
MxDraw是由梦想凯德基于AutoDesk CAD平台开发的软件,拥有完全自主的核心技术和知识产权。MxDraw致力于为各企业提供最优秀的CAD平台整体解决方案。
技术服务
TEL:400-888-5703
185-8173-1060
QQ:827867134,6884123
产品购买
TEL:400-888-5703
185-8173-1060
QQ:827867134,6884123
用户交流
QQ群1:827867134
QQ群2:827867134
QQ群3:827867134