|
发表于 2008-1-30 18:37:05
|
显示全部楼层
楼主,这个方法暂时不能再优化了,建议换一种方法处理吧。
procedure TMainForm.OpenWordClick(Sender: TObject);
var
lPath: String;
lFileName: String;
begin
if OpenDialog1.Execute then
begin
lFileName := OpenDialog1.FileName;
FWord := ComObj.CreateOleObject('Word.Application');
FApp := DispatchHelper.Create(FWord);
FApp.PropertyPut('Visible', [True]);
FDocs := DispatchHelper.Create(FApp.PropertyGet('Documents', []));
FDocs.InvokeMethod('Open', [lFileName]);
end;
end;
procedure TMainForm.CloseWordClick(Sender: TObject);
var
lAw: DispatchHelper;
begin
lAw := DispatchHelper.Create(FApp.PropertyGet('ActiveWindow', []));
lAw.InvokeMethod('Close', []);
end;
procedure TMainForm.replaceClick(Sender: TObject);
var
lSelection, lFind, lReplacement: DispatchHelper;
begin
lSelection := DispatchHelper.Create(FApp.PropertyGet('Selection', []));
lFind := DispatchHelper.Create(lSelection.PropertyGet('Find', []));
lReplacement := DispatchHelper.Create(lFind.PropertyGet('Replacement', []));
lFind.InvokeMethod('ClearFormatting', []);
lReplacement.InvokeMethod('ClearFormatting', []);
lFind.InvokeMethod('Execute', [edit1.Text, False, False, False, False, False, True, 1, False, edit2.Text,
2, False, False, False, False]);
end; |
|