关于ole的问题,着急(大侠们帮帮忙吧)(100分)

  • 主题发起人 主题发起人 renurong
  • 开始时间 开始时间
R

renurong

Unregistered / Unconfirmed
GUEST, unregistred user!
VWord 为全局OleVariant变量
function TForm.CheckWord: Boolean;
begin
Result := True;
try
VWord := GetActiveOleObject('word.Application');
except
try
VWord := CreateOleObject('word.Application');
except
try
VWord := GetActiveOleObject('word.Application');
except
Result := False;
end;
end;
end;
end;
....
当我调用时
if not CheckWord then Exit;
try
VWord.wordBasic.FileOpen(LoadFile//我要打开的word文件名);
except
Exit;
end;
//// windows.SetParent(MyHandle,FrmMain.panel1.Handle);
VWord.Showme;
VWord.Visible := True;
。。。。。。

1。我想实现打开后的word窗口在我窗口的指定容器内(如panel),不要在windows任务栏中有显示
2。当打开的word窗口关闭时,我如何知道
大侠们有什么简单适用的好办法来实现,请指点
非常感谢!!!
 
这个OLE方面我还真是不熟,我帮你up一下。
 
1、没有办法达到,不过你可以用TOleContainer。
2、你可以先看看正常情况下,Word窗口每次打开一个文件后的窗口标题的显示方式,
然后调用FindWindow()获得窗口句柄。
 
我以前只用olecontainer做过,别的方法不会呀
 
谁有好办法
用olecontainer怎么实现上面的两个功能呢?
谢谢了,高手们帮帮忙吧
 
1.在使用 SetParent 前,先要获得 word 实例的 handle
2.原文注释掉的 SetParent 参数还有错误
3.启动时,设置一个 bool 值为 true ,表示启动了一个 word 实例,也避免再次启动一个
实例,关闭时自己将这个 bool 值设置为 false
做完这些步骤,大概应该可以应付大多数情况了。
 
我也不会,帮你提前一下
能告诉我怎样发消息给在线的大富翁吗?
 
这个方面还真是没有做过
 
在在线富翁里面可以发送消息给在线的富翁
 

没什么办法么?
我走了
 
MyHandle := findWindow(nil,pchar(VWord.caption));
windows.SetParent(MyHandle,FrmMain.Handle);
//这样好像有问题
 
要放在容器内就不要用使用OleVariant变量的这种方法,建议你先看一下这篇帖子:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517
 
没人能帮助我么?
 
你看delphi带的demo里的activex中olectnrs那个例子就可以了,正好满足你的要求
 
我正在确究这方面,现在略有成效,主要通过OLE ContainerAC控件(可以到源码空间里去DOWN)
给你贴一段:
===================================
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
try

ole.Enabled:=false;
ole.ParentWindow:=panel3.Handle;
if open.Execute then
begin
filename:=open.FileName;
if copy(filename,pos('.',filename)+1,3)<>'doc' then
begin
showmessage('不是有效的WORD文档');
Exit;
end
end;
with ole do
begin
Enabled:=true;
createobject('word.document',false);
CreateObjectFromFile(filename,false);
CanFocus;
DoVerb(0);
run;
end;
Except
ole.DestroyObject;
end;
end;
===================================
 
我认为要用OleContainer比较方便。
1.能显示到自己的窗体中。
2.控制起来也是方便的。
3.关闭窗体的时候,简单的destroyOleObject就可以了。
用FindWindow也许可行,但比较麻烦,要考虑的东西也多。


 
多人接受答案了。
 
后退
顶部