老问题,搜索不到了,:)
所以请教具体代码,感谢……:)
需要把DOC文件显示在程序里,不是在外部打开
显示的格式需要是原来的样子,包括图片什么的,:)
而且不能编辑,如果用IE控件,发现它能编辑,而且出现标尺什么的,如何把他们去掉呢?
还有鼠标菜单,需要使鼠标两个键不能操作这个DOC,就是不能选择,也不能弹出菜单以前见过这个问题,现在搜索不到了,再次请教大家!!感谢
所以请教具体代码,感谢……:)
需要把DOC文件显示在程序里,不是在外部打开
显示的格式需要是原来的样子,包括图片什么的,:)
而且不能编辑,如果用IE控件,发现它能编辑,而且出现标尺什么的,如何把他们去掉呢?
还有鼠标菜单,需要使鼠标两个键不能操作这个DOC,就是不能选择,也不能弹出菜单以前见过这个问题,现在搜索不到了,再次请教大家!!感谢
解决方案 »
- delphi中判断全角
- 我什么时候才能用上无风扇的电脑?
- 在做地图时遇到的一个问题
- 如果想要把richedit里的文件存入到数据库中的两个问题(菜鸟送分)!
- 小弟求救:如何用delphi备份、压缩和恢复access数据库,在线等待,高分!
- 怎样调用BPL中类的方法或函数和属性呢?急急急!!!!!!!
- 关于forms的存放
- 可远程访问的运行ServerSocket的微机,线路有何要求?
- 拿到一个.dcu以后,如何知道它里面有哪些类型,有哪些函数,函数的参数是什么
- 有关记录文件的子记录
- 载线等待-------奇怪,我设置什么?EDIt控件不能输入空格?为什么呀?
- wordapplication控件(如何打开一个指定路径的WORD文件),请教!
AControl: TCustomMemo): Boolean;
var
NewDoc: Variant;
V: OleVariant;
begin
try
try
V := CreateOleObject('Word.Application');//建立自动化对象
NewDoc :=V.Documents.Open(AFileName); //打开指定文件
NewDoc.Content.Copy; //拷贝到剪贴板
AControl.Lines.Clear;
AControl.PasteFromClipboard; //粘贴
NewDoc.Close; //关闭Word文件
finally
V.Quit; //释放自动化对象
end;
Result := True;
except
Result := False;
end;
end;
AControl是什么,是Memo吗?
AControl: Memo
这行提示 :
[Error] Unit1.pas(36): Undeclared identifier: 'CreateOleObject'
但是下面这一行
NewDoc :=V.Documents.Open(AFileName);
提示“此命令无效”
procedure TForm1.Button1Click(Sender: TObject);
var
Filename:OleVariant;
begin
WordApplication1.Connect;
WordApplication1.Visible:=True;
Filename:='c:\1.doc';
WordApplication1.Documents.Open(Filename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
with WordDocument1 do begin
Activate;
While not ADOTable1.Eof do // 将adotable1 里的field1和field2的内容写入worddocument
Range.InsertAfter(ADOTable1['Field1']+';'+ADOTable1['Field2']+'.');
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
WordDocument1.SaveAs;
WordDocument1.Close;
WordDocument1.Disconnect;
WordApplication1.Disconnect;
WordApplication1.Quit;
end;
OleContainer1.CreateObjectFromFile('d:\a.doc', False);
{open document} filename := //文件名,包含路径 confirmconversions := false; readonly := false; addtorecentfiles := false; passworddocument := ''; passwordtemplate := ''; revert := true; writepassworddocument := ''; writepasswordtemplate := ''; format := wdopenformatdocument; wordapplication.documents.open( filename, confirmconversions, readonly, addtorecentfiles, passworddocument, passwordtemplate, revert, writepassworddocument, writepasswordtemplate, format );
WordApplication1.Documents.Open(Filename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
我给你的那段代码在d6+office2000+win2000下面调试通过的
Acontrol可以是Memo,或者RichEdit
显示的格式也和以前不一样了
但如果你要保持原样,你必需去找个支持字节流的显示控件来,读出来让哪个控件显示
好象有个控件叫txtextcontrolpro9可以达到要求(它可以支持9种文件格式,包括各类图片)
你要保持原有文件的样貌,就必须换成字节流(如果存在数据库里,直接读出来就可以了)
用其他办法不能把原来格式显示出来吗?
有没有其他容器,我只想打印的效果一样
能不能把WORD转成PDF,然后显示呢?
BUG有:(以操作Word为例)
1.当使用OLEContainer在你的Form中时,如果你的Form中还有其它可以接收焦点的组件,你运行后点一下该组件,OLEContainer将被屏蔽。无法继续操作。
2.当使用OLEContainer在你的Form中时,这时开启外部一个Word窗体或进入外部一个Word窗体时,再返回你的Form时,OLEContainer将被屏蔽。无法继续操作。
你可以自己加个Borland 自带的OLEContainer测试一下是不是有这些问题,当然你可以手动激活,但我想你不会让用户这么操作吧。
这两个严重BUG将导至我们Delphi,BCB程序员无法使用OLEContainer内嵌Word,现在福音来了你可以使用SnOLEContainer组件来开发了,SnOLEContainer继承于OLEContainer,修复上面二个严重BUG可以让你在程序中正常使用OLEContainer。演示Demo:
http://snpack.fykj.com/OtherDown/TestOleWord.exe