问题:为什么提示 RPC 服务器无法使用? ( 积分:50, 回复:8, 阅读:78 )
分类:控件 - 使用 ( 版主:amo, cAkk )
来自:凤, 时间:2002-2-16 20:28:00, ID:923794 [显示:小字体 | 大字体]
我用Delphi 启动 Word. 第一次能顺利运行
可是关闭 Word 后,再次用同样的方法启动
却提示"RPC服务器无法使用" 为什么?
请各位多多指教.
来自:Pipi., 时间:2002-2-16 20:36:00, ID:923804
说清楚一点,你是怎么启动的?通过ole还是直接运行winword.exe?
代码贴出来
来自:凤, 时间:2002-2-17 15:01:00, ID:924474
用ole("servers")页上的主键启动的。
来自:Pipi., 时间:2002-2-17 16:11:00, ID:924548
用户自己关掉word是有点问题的
来自:凤, 时间:2002-2-20 9:53:00, ID:929069
procedure TFTree.TwordClick(Sender: TObject);
var Template,NewTemplate,ItemIndex: OleVariant;
I,J,k,h: integer;
V:Variant;
Range: Variant;
W:TwordApplication;
Begin
Try
V:=CreateOleObject('Word.Application');
V.visible:=true;
V.Options.CheckSpellingAsYouType:=false;
V.Options.CheckGrammarAsYouType:=false;
V.caption:='abcdefg';
//V.wordDocuument.add;
//D.
//D.Range.InsertAfter(' '+CurItemCaption+#13);
//D.Range.InsertAfter(' 日期: '+DatetoStr(Date)+#13);
Except
// V.quit;
end;
end;
我用上述方法也打开了Word ,可是怎样建立一个新的Word文档
又怎样把我的数据导入呢?
来自:skyblade, 时间:2002-2-20 10:36:00, ID:929212
最好不要自己关闭WORD,由你的程序来看你是在程序中通过DELPHI的WORD.application来启动word的,则关闭word也应使用delphi的方法:
wordapplication.ActiveDocument.close()
wordapplication.Quit
来关闭.
来自:dop, 时间:2002-3-4 11:37:00, ID:957831
同上。。。
的确是问题的正解。。。
来自:dcom, 时间:2002-4-2 11:14:00, ID:1017819
[red]如果关闭WORD时你的程序正在向WORD中写数据,则再次用同样的方法启动
就会提示"RPC服务器无法使用" ,你可以把‘V.visible:=true;’这一句写在数据写
完之后。[/red]
我给你一个小例子:
procedure TfrmPlag.BtnPrintClick(Sender: TObject);
Var
Y1,M1,D1:Word;
i,j:integer;
Vdate:OleVariant;
begin
try
WordAplag.Connect;
except
MessageDlg('Word may not be installed', mtError, [mbOk], 0);
Abort;
end;
WordAplag.Documents.AddOld(EmptyParam,EmptyParam);
DecodeDate(Now,Y1,M1,D1);
//******************* 写脚文件 *************************
WordAplag.Selection.TypeParagraph;
WordAplag.Selection.Font.Bold :=0;
WordAplag.Selection.Font.Size :=10;
WordAplag.Selection.ParagraphFormat.Alignment := wdAlignParagraphright;
Vdate :='打印人员:'+Auserinfo.UserName +
' 打印日期:'+formatdatetime('yyyy"年"mm"月"dd"日"',now);
WordAplag.ActiveDocument.sentences.Last.Text :=Vdate;
//******************* 写头文件 *************************
WordAplag.Selection.Font.Name :='宋体';
WordAplag.Selection.Font.Bold :=1;
WordAplag.Selection.Font.Size := 14;
WordAplag.Selection.ParagraphFormat.Alignment :=wdAlignParagraphCenter;
WordAplag.Selection.TypeText(inttostr(Y1)+'年'+inttostr(M1)+'月固定资产折旧表');
//*******************写正文部分 *************************
WordAplag.Selection.TypeParagraph;
WordAplag.Selection.Font.Size :=9;
WordAplag.Selection.ParagraphFormat.Alignment := wdAlignParagraphLeft;
WordAplag.Selection.Tables.AddOld(WordAplag.Selection.Get_Range ,Sgrdshow.Rowcount,10);
WordAplag.Selection.Cells.Width:=100;
for i:=1 to Sgrdshow.Colcount-1 do begin
for j:=0 to Sgrdshow.Rowcount-1 do begin
WordAplag.ActiveDocument.tables.Item(1).Cell(j+1,i).Range.Text :=Sgrdshow.Cells[i,j];
End ;
End;
WordAplag.Visible :=True;
WordAplag.Disconnect ;
end;
来自:3p, 时间:2002-4-29 0:59:00, ID:1075145 | 编辑
我也碰到了同样的问题,我是利用server页的WordApplication构件进行连接和打开文档的
,但如果自己关闭word的窗口而不是在delphi中WordApplication1.disconnect、quit的方法
关闭word,在再次进行连接时将出现Rpc的错误,能否有方法避免出现这样的错误?比如在
WordApplication1.connect之前能判断出WordApplication1是否已连接,如果有则释放
连接先等。
各位请赐教,谢谢!