例子:
请参见\SAMPLES\NO6\API\Client\PerformBackupSaveForDocumentEntity代码。
{....................................................................................}
Procedure Command_PerformBackupSaveForDocumentEntity(Window : TServerWindow; Parameters : PChar);
var
EntityHandle : TObjectHandle;
Begin
EntityHandle := ClientAPI_FindEntityByDataHandle(MessageRouter_GetState_CurrentEditorWindow);
//MessageRouter_GetState_CurrentEditorWindow函数返回当前在项层的文档的窗体句柄。当前在项层在文档的窗体句柄。
//ClientApi_FindEntityByDataHandle 函数使用一个编辑器窗体句柄来返回查找返回一个实体的句柄。
If MessageRouter_GetState_WindowKind(SchAPI_GetCurrentEditorWindow) <> 'Text' Then
begin
Showinfo('当前文件不是文本文件');
Exit;
end
else
showinfo('当前文件是文本文件,输出文件在当前DLL服务器所在的文件夹下,名称名称为File.Txt');
//如果当前文档实体的类型不是文本则退出。
ClientApi_PerformBackupSaveForDocumentEntity(EntityHandle,'File.txt');//保存文件。
End;
{....................................................................................}
如果您有一个文本文档打开在设计资源管理器中,在此文档上运行此代码例子,此文本文档的内容将被保持在文本文件中。
4.3.20 ClientApi_PerformLoadForDocumentEntity过程
声明(来自ClientProcs单元):
Procedure ClientApi_PerformLoadForDocumentEntity(ADocumentEntity : TObjectHandle);
描述:
ClientApi_PerformLoadForDocumentEntity过程打开一个适当的编辑器窗体并且从一个设计数据库中加载一个文档的内容。
例子:
...
ClientApi_PerformLoadForDocumentEntity(TextEntity.Handle);
ClientApi_SetAsCurrentDocument(TextEntity.Handle);
...
此代码片段打开一个文本编辑器窗体并且加载一个文本文档内容到此文本窗体中,再设置成为当前文档。
参见其它:
|
ClientApi_PerformSaveForDocumentEntity过程 |
4.3.21 ClientApi_PerformSaveForDocumentEntity过程
声明(来自ClientProcs单元):
Procedure ClientApi_PerformSaveForDocumentEntity(ADocumentEntity : TObjectHandle);
描述:
ClientApi_PerformSaveForDocumentEntity过程使用文档实体的句柄作为参数来保存设计资源管理器的一个文档实体。
例子:
hModule := MessageRouter_Modulehandle(‘Sch’);
//MessageRouter_ModuleHandle函数返回指定名称模块的句柄,模块名称是Sch表示返回原理图编辑器模块句柄。
IfMessageRouter_SendGetStateDocumentHasChanged(hModule,Entity.Objecthandle) Then
ClientApi_PerformSaveForDocumentEntity(Entity.Handle)
//MessageRouter_SendGetStateDocumentHasChanged判断文档对象Entity是否已被修改。
此代码片段示范只要一个文档被修改(例如被用户改变了内容),那么函数ClientApi_PerformSaveForDocumentEntity保存此新文档。hModule变量表示服务器模块的句柄。
参见其它:
|
ClientApi_PerformLoadForDocumentEntity过程 |
4.3.22 ClientApi_QueryDocumentEntity过程
声明(来自ClientProcs单元):
Procedure ClientApi_QueryDocumentEntity(...);
描述:
ClientApi_QueryDocumentEntity过程依赖于查询模式(eGetState或eSetState)来设置或返回一个实体的值。当eGetState参数使用时,数据被从客户端内部服务器中传送到您的服务器中。当eSetState参数被使用时,您的服务器的数据被传送到客户端内部服务器中,在您的服务器从内部服务器数据库中提取了数据并进行了修改的情况下,使数据得到了同步。因而使用AModeQuery参数是必要的,确保从客户端数据库中提取出的数据和您的外部服务器的数据完全地同步。
|
参数 |
类型 |
描述 |
|
AnEntityHandle |
TObjectHandle |
表示当前实体。 |
|
AModeQuery |
TQueryMode |
表示查询模式,要么是设置一个实体的值(eSetState)或取(eGetState)一个实体的值。 |
|
AParentHandle |
TObjecthandle |
表示一个实体的上一层实体的句柄。 |
|
AnEntityId |
TEntityId |
表示实体的类型。 |
|
AOwnerDesign |
TObjectHandle |
表示一个binder(是一个包含实体的容器)的句柄。 |
|
AKind |
TString |
未使用。 |
|
AName |
TString |
表示实体名称。 |
|
AEditorKind |
TString |
表示编辑器种类。 |
|
ADBAttributes |
Integer |
表示此文档的属性。ADBAttributes属性实际上是一个字节字段,可与以下五个常量(cfaShortcut, cfaNoChildItem,cfaActiveDoc,cfaOLEDoc,cfaLinkedOLEDoc)来进行比较。更多信息,请参见Pprotel 99运行时间库中的ddb_address。 |
|
ADocumentDBID |
Integer |
表示此文档唯一的ID号。 |
|
FullAddress |
TString |
表示此文档实体的完整地址,是只读值。 |
|
AObjectHandle |
TObjectHandle |
表示窗体的句柄,如果它是非零值,表示一个窗体在设计资源管理器中被打开,并显示出此文档实体的内容。 |