4.1.4 ClientApi_GetNextEntity函数
声明(来自ClientProcs单元):
Function ClientApi_GetNextEntity(AnIterator : TObjectHandle) : TObjectHandle;
描述:
ClientApi_GetNextEntity函数通过给定的迭代程序句柄返回下一个查找到的对象句柄。
参见其它:
|
TObjectHandle类型 |
ClientApi_CreateIterator函数 |
|
ClientApi_GetFirstObject函数 |
ClientApi_DestroyIterator函数 |
4.2 实体处理函数
4.2.1 ClientApi_AddEntity过程
声明(来自ClientProcs单元):
Procedure ClientApi_AddEntity(AParent, AEntity : TObjectHandle; AnIconIndex : Integer);
描述:
ClientApi_AddEntity过程通过父(parent)句柄增加一个实体到设计数据库中,并显示在设计资源管理器的导航器面板中。AnIconIndex参数表示此实体对象图标的内部索引,设计资源管理器有一个按图标索引分类的图标列表。
例子:
Var
BinderHandle : TObjectHandle;//当前实体所在的容器的句柄。
EntityHandle : TObjectHandle;//当前实体句柄。
DesignEntity : TDocumentEntity;//程序临时所用文档实体。
ParentEntity : TObjectHandle;//父实体。
EntityId: TEntityID;//实体文档的类型。
Begin
EntityHandle :=
ClientAPI_FindEntityByDataHandle(MessageRouter_GetState_CurrentEditorWindow);
//MessageRouter_GetState_CurrentEditorWindow函数返回当前在项层的文档的窗体句柄。当前在项层在文档的窗体句柄。
//ClientApi_FindEntityByDataHandle 函数使用一个编辑器窗体句柄来返回查找返回一个实体的句柄。
If Entityhandle = 0 Then Exit;//如果当前无实体则退出。
Binderhandle := ClientApi_GetDocumentOwnerBinder(EntityHandle);
//ClientApi_GetDocumentOwnerBinder函数获得在其内部存有文档的封装对象的句柄,一个封装对象表现为包含实体的容器,一个实体可为一个设计文档或文件来。
ParentEntity := BinderHandle;//和到当前实体所在容器的句柄,赋予ParentEntity句柄。
EntityId:= eDocument;//实体的类型是文档型eDocument。
EntityHandle := ClientApi_CreateEntity(EntityId);//建立一个文档型实体。
DesignEntity := TDocumentEntity.Create(EntityHandle);//建立实体对象。
DesignEntity.Querydatabase(eGetState);//用内部服务器同步外部服务器数据,即对新建的文档对象初始化。
DesignEntity.EditorKind := 'Text';//文档为文本文件。
DesignEntity.Name := 'MyText';//名称名称为MyText。
DesignEntity.Querydatabase(eSetState);//用外部服务器新建的外部文档来同步内部服务器。
ClientApi_AddEntity(ParentEntity,EntityHandle,-1);//把新建的文档增加到设计数据库中,加到当前文档所在的容器中。
DesignEntity.Free;//释放文档
ClientApi_RepopulateDocumentEntity(EntityHandle,False);//刷新当前文档所在的容器。
End;
当您使用此代码例子时,实体被放置的位置与您在设计数据库中打开的是哪一层文档相关,实体将会被放置在当前实体所在的容器对象中,例如,如果文档文件夹被打开,那么此实体将被连同其它实体一起增加到文档文件夹中。
在您能传递要增加的实体对象的句柄给ClientAPI_AddEntity过程前,您需要创建一个实体对象并且分配编辑器种类和名称,如果您不想要指定一个图标,传递-1值,设计资源管理器将分配一个默认的图标。如果您想要使用您的服务器的图标,您需要调用能返回您的图标索引的函数ClientApi_RegisterEntityIcon。
当新的实体被加入后,ClientApi_RepopulateDocumentEntity被调用来刷新设计资源管理器的内容。
参见其它:
|
ClientApi_RegisterEntityIcon函数 |
ClientApi_Create 过程 |
|
ClientApi_DestroyEntity过程 |
4.2.2 ClientApi_CreateEntity函数
声明(来自ClientProcs单元):
Function ClientApi_CreateEntity(AEntityID : TEntityId) : TObjectHandle;
描述:
ClientApi_AddEntity函数创建一个AEntityID参数所指定类型的实体对象,并返回实体对象的句柄。这里有两个实体类型,您可以创建并使用在设计资源管理器中,如果一个使用eNoEntity或eItem参数,那么一个抽象的实体被创建,如果使用一个eDocument参数,那么文档对象被创建。如果AEntityID参数是此三个值以外的其它值,ClientAPI_AddEntity将返回一个空值(nil)。
参见其它:
|
ClientApi_AddEntity过程 |
ClientApi_DestroyEntity过程 |
4.2.3 ClientApi_DestroyEntity过程
声明(来自ClientProcs单元):
Procedure ClientApi_DestroyEntity(AEntityHandle : TObjectHandle);
描述:
ClientApi_DestroyEntity过程销毁实体对象。
参见其它:
|
ClientApi_CreateEntity过程 |
ClientApi_AddEntity过程 |
4.2.4 ClientApi_QueryEntity过程
声明(来自ClientProcs单元):
Procedure ClientApi_QueryEntity(...);
描述:
ClientApi_QueryEntity过程依赖于查询模式(eGetState或eSetState)为实体返回或设置值,参见下表的过程的参数。当eGetState参数被传入,数据集被传出客户端到您的服务器中。当eSetState参数被传入,数据集从您的服务器被传入到客户端中。结果在您的服务器抽取了客户端服务器数据并修改后情况下,使您的服务器和客户端之间的数据完整性得到了保证,因而AModeQuery参数对确保从客户端到您的服务器的数据集同步得到了保证。
|
参数 |
类型 |
描述 |
|
AnEntityHandle |
TObjectHandle |
表示当前实体。 |
|
AModeQuery |
TQueryMode |
表示查询模式,对一个实体要么是eGetState取值或eSetState设置值。 |
|
AParentHandle |
TObjecthandle |
表示一个实体的上一层实体句柄。 |
|
AnEntityId |
TEntityId |
表示实体类型。 |
|
AOwnerDesign |
TObjectHandle |
表示到一个binder的句柄(是一个包含实体的容器)。 |
|
AKind |
TString |
表示编辑器种类。 |
|
AName |
TString |
表示实体名称。 |
|
AObjectHandle |
TObjectHandle |
表示窗体句柄。 |
参见其它:
|
TObjectHandle,TQueryMode和TEntityId类型 |
TEntity和TDocumentEntity类 |