如何设置环境
-
回答:
注册控件,运行控件安装目录下的bin\vc100\RegistMxDrawX.exe向系统注册控件
运行Delphi,导入控件的类型库
点击 CreateUnit 按钮,对导入的控件接口创建代码定义:
点击”Install…” 按钮把控件组件安装到Delphi中
安装完组件后,可以在控件面板,看到控件组件:
新建一个Delphi 工程,把控件放到对话框中
新建一个Delphi工程
在对话框中,放入控件:
增加一个按钮,读取图中属性块的属性
在对话框编辑器中增加一个按钮:
双击按钮,跳到按钮点击事件处理函数中,并增加代码:
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;
编译运行程序效果
参考例程
控件安装目录下的sample目录:
Delphi7Smaple,Delphi7Smaple2