楼主写Word的宏脚本,需要楼主自已去录, 之后转成平台脚本.
先看看在word中,录制的宏脚本
Sub Macro1()
'
' Macro1 Macro
' 宏在 2006-10-8 由 liujian 录制
'
Application.UserName = "liujian"
Application.UserInitials = "alang"
Application.UserAddress = ""
ActiveDocument.TrackRevisions = Not ActiveDocument.TrackRevisions
End Sub
以下是在平台上的写法
var
doc: System.DispatchHelper;
app: System.DispatchHelper;
sel: System.DispatchHelper;
begin
dbedtContent.DataSource.DataSet.Edit;
TOleContainer(dbedtContent.InplaceControl).DoVerb(0); //字段数据类型为二进制,表现类型为OLE
doc := System.DispatchHelper.Create(TOleContainer(dbedtContent.InplaceControl).OleObject);
app := System.DispatchHelper.Create(doc.PropertyGet('Application', []));
app.PropertyPut('UserName', [edtAuthor.Text]); //设置用户名
app.PropertyPut('UserInitials', ['alang']); //设置用户简称
doc.PropertyPut('TrackRevisions', [True]); //设置痕迹保留
--------------------------------
帮助文件中,对DispatchHelper的描述
NameSpace: System
--------------------------------------------------------------------------------
DispatchHelper = class(Object)
private
idispatch: TObject;
function Invoke(Name: string; Flags: Longword; ParamsByRef: array of Boolean; Params: array of TObject): TObject; overload;
public
constructor create(idispatch: TObject); overload;
function InvokeMethod(Name: string; Params: array of TObject): TObject; overload;
function InvokeMethod(Name: string; ParamsByRef: array of Boolean; Params: array of TObject): TObject; overload;
function PropertyGet(Name: string; Params: array of TObject): TObject; overload;
procedure PropertyPut(Name: string; Params: array of TObject); overload;
end;
利用对象方式来访问Dispatch接口类型的对象。
InvokeMethod 调用对象的方法
PropertyPut设置对象的属性
PropertyGet获取对象的属性 |