十万火急!Help me!OleContainer的问题?(100分)

  • 主题发起人 主题发起人 seeseainwind
  • 开始时间 开始时间
S

seeseainwind

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序中,左边是一个TreeView,右边是一个OleContainer,其中嵌入Excel 工作表,
点中TreeView 的叶子节点时,Excel就变成灰色的,处于未激活状态,Excel
的各个菜单项也消失,只有再次点击Excel才可使它激活。我试着在OleContainer的
OnDeactive()事件中做"doverb(ovshow)"将Excel激活,但这时总有闪烁现象,
我的问题是如何使Excel一直处于激活状态,并且没有闪烁现象。


 
为什么没人回答问题呢?
 
难!?
这个控件本身就是这样设计的.
 
当OLEcontainer失去焦点时候就会变灰,让她一直不变有点难,
可以试以下给你的treeview叶子加一个的事件把焦点还给OLEcontainer
其实我觉得OLEcontainer失去焦点变灰也可以,
没什么太大影响的,就是多点一下激活它罢了
 
我也试过,是在OleContainer的onDeactive()中让OleContainer
获得焦点,可是总有闪烁现象,能不能通过软、硬方法将闪烁现象
除去。
Thank you!
 
可以这样骗他们一下。

procedure TForm1.OleContainer1Deactivate(Sender: TObject);
begin
LockWindowUpdate(OleContainer1.Handle);
end;

procedure TForm1.OleContainer1Activate(Sender: TObject);
begin
LockWindowUpdate(0);
end;
 
to menxin:
我试了一下,有点不好使。
当点击TreeView 时,要将叶子节点的内容显示在OleContainer 中,而
这时的OleContainer 已被锁定,内容就不能及时的更新了。

还有没有再好一点的办法!
 
点击后用CreateOleObject(),
清除OleContainer 内容用self.OleContainer1.DestroyObject;
 
最少20天内请回来提前一下
 
谢谢大家的帮助。
 
后退
顶部