4.3.30 SetAllClientApiProcedures过程
声明(来自ClientProcs单元):
Procedure SetAllClientApiProcedures;
描述:
SetAllClientApiProcedures过程初始化并且设置所有客户端API调用。
5. 类
5.1 TEntity类
声明(来自ClientClass单元):
Type
TEntity = Class
Handle: TObjectHandle;
ParentHandle: TObjectHandle;
EntityId: TEntityId;
OwnerDesign: TObjectHandle;
Kind: TString;
Name: TString;
ObjectHandle: TObjectHandle;
Constructor Create(AHandle : TObjectHandle);
DestructorDestroy;
ProcedureQueryDatabase(AQueryMode : TQueryMode); Virtual;
ProcedureWriteToDebug;
End;
描述:
TEntity类代表一个设计数据库基本的实体。对于提供有关在一个设计数据库中的文档的信息的TDocumentEntity类而言,此类是基础类。
|
字段 |
类型 |
描述 |
|
Handle |
TObjectHandle |
表示一个实体的句柄。 |
|
ParentHandle |
TObjectHandle |
表示此实体的上一层实体的句柄。常用于在当您需要得到一个实体所属的文件夹句柄情况下。 |
|
EntityId |
TEntityId |
表示实体的ID号,当TEntityId变量是一个eDocument类型,即文档对象,则一个TDocumentEntity对象被创建,当TEntityId变量是一个eNoEntity或eItem,即非文档对象,则一个TEntity对象被创建。 |
|
OwnerDesign |
TObjectHandle |
表示一个binder的句柄(包含实体的容器)。 |
|
Kind |
TString |
没有使用 |
|
Name |
TString |
表示实体名称。 |
|
ObjectHandle |
TObjectHandle |
表示实体的窗体句柄,等效于在Delphi运行时间库Windows.pas中定义的HWND参数。 |
|
方法 |
描述 |
|
Constructor Create(AHandle : TObjectHandle); |
创建一个实体对象。 |
|
Destructor Destroy |
销毁一个实体对象。 |
|
Procedure QueryDatabase |
表示查询模式,要么是得到一个实体的值或设置一个实体的值(eGetstate,eSetState)。 |
|
Procedure WriteToDebug |
为调试目的输出一个实体对象的数据到控制台窗体。 |
注意:
Querydatabase过程确保在您的服务器中的TEntity对象和设计资源管理器客户端服务器中的数据之间的数据完整性得到了保护。因而,如果您想要的数据已被您的服务器修改,您需要用eSetState模式来通知客户端服务器,或如果您想要从客户端中提取数据,您需要用eGetState模式来通知客户端服务器。
参见其它:
|
TObjectHandle类型 |
ClientAPI_QueryEntity |
|
ClientAPI_QueryDocumentEntity函数 |
5.2 TDocumentEntity类
声明(来自ClientClass单元):
TDocumentEntity = Class(TEntity)
EditorKind : TString;
DocumentDBId : Integer;
DBAttributes : Integer;
FullAddress: TString;
Constructor Create(AHandle : TObjectHandle);
ProcedureQueryDatabase(AQueryMode : TQueryMode); Override;
FunctionGetAbsoluteAddress : TString;
End;
描述:
TDocumentEntity类代表一个设计数据库的文档实体。一个文档实体代表设计数据库中一个文档或一个文件夹。此类从TEntity基础类继承。
|
字段 |
类型 |
描述 |
|
EditorKind |
TString |
表示编辑器类型。 |
|
DocumentDBId |
Integer |
表示一个文档实体的唯一的ID号。 |
|
DBAttributes |
Integer |
表示此文档的属性。DBAttributes实际上是一个字节字段,请与这五个字节掩码常数(cfaShortcut、cfaNoChildItem、cfaActiveDoc、 cfaOLEDoc、cfaLinkedOLEDoc) 来比较。更多信息请参见protel 99运行时间库中ddb_address。 |
|
FullAddress |
TString |
表示文档实体的完整的地址,为只读值。 |
|
方法 |
描述 |
|
Constructor Create(AHandle : TObjectHandle); |
创建一个文档实体对象。 |
|
Procedure QueryDatabase |
表示查询模式,要么是得到一个实体的值或设置一个实体的值(eGetstate,eSetState)。 |
|
Function GetAbsoluteAddress : TString; |
提取此文档实体的抽象地址。 |
请见SDK例子\SAMPLES\NO6\API\Client\Document Entity Details。
{....................................................................................}
Procedure GetDocumentEntityInfo;
Var
EntityHandle: TObjectHandle;//实体对象句柄。
BinderHandle: TObjectHandle;//容器对象句柄。
DocumentEntity: TDocumentEntity;//文档对象句柄。
Begin
EntityHandle :=
ClientAPI_FindEntityByDataHandle(MessageRouter_GetState_CurrentEditorWindow);
//MessageRouter_GetState_CurrentEditorWindow函数返回当前在项层的文档的窗体句柄。当前在项层在文档的窗体句柄。
//ClientApi_FindEntityByDataHandle函数使用一个编辑器窗体句柄来返回查找返回一个实体的句柄。
If Entityhandle = 0 Then Exit; //如果无实体对象则退出。
DocumentEntity := TDocumentEntity.Create(EntityHandle);//创建一个文档实体对象。
DocumentEntity.QueryDatabase(eGetState);//用客户端数据同步外部外部服务器数据。
ShowInfo('Object handle = '+ IntToStr(DocumentEntity.ObjectHandle)+ #13 +
'Parent handle = '+ IntToStr(DocumentEntity.ParentHandle)+ #13 +
'Binder handle = '+ IntToStr(DocumentEntity.OwnerDesign)+ #13 +
'AEntityId = '+ IntToStr(Ord(DocumentEntity.EntityId)) + #13 +
'Editor Kind = '+ DocumentEntity.EditorKind+ #13 +
'Document DB Id = ' + IntToStr(DocumentEntity.DocumentDBId)+ #13 +
'Full address = '+ DocumentEntity.FullAddress
);
DocumentEntity.Free;//释放文档实体对象。
End;
TDocumentEntity类封装ClientAPI_QueryDocumentEntity函数来提取有关一个特定的文档实体明细。
参见其它:
|
TObjectHandle类型 |
ClientApi_GetDocumentEntityAbsoluteAddress函数 |
|
ClientAPI_QueryEntity函数 |
ClientAPI_QueryDocumentEntity函数 |
|
TEntity类 |
6. 客户端API例子
6.1打开想要的文档
如何您想要打开一个指定的文档,且您仅仅知道设计文档的名称,那么您能运行此小规模的附加的服务器,在“\SAMPLES\NO2\API\Client\SearchAndOpenDocuments”文件夹下。当您读完客户端API章节后,您就能了解此服务器是如何工作的。
为了使用这个“SearchAndOpen”附加的服务,您只需输入参数“DocumentName1=Value1 | DocumentName2 = Value