C chenybin Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-25 #21 楼上说的是够玄的,别是自己杜撰出来的吧。我估计就是CreateOleObject吧,才疏学浅,等高人来确认一下
Y younghat Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-25 #22 确实,non-olecontainer方式就是不使用OleContainer的方式(我以为这一点是很容易理解的,却没想到让你们觉得“玄”了,sorry),也就是CreateOleObject方式。 我的程序代码是针对Excel的,不是Word,并且确实有不方便公开的原因,请原谅。 不过把原理弄清楚了之后,程序实现起来并不是很难,相信LZ凭自己的能力可以搞定。
确实,non-olecontainer方式就是不使用OleContainer的方式(我以为这一点是很容易理解的,却没想到让你们觉得“玄”了,sorry),也就是CreateOleObject方式。 我的程序代码是针对Excel的,不是Word,并且确实有不方便公开的原因,请原谅。 不过把原理弄清楚了之后,程序实现起来并不是很难,相信LZ凭自己的能力可以搞定。
C chenybin Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-28 #24 凑个热闹,看了点资料,想法还不成熟,希望能给楼主一些借鉴价值 我用VBA在Word环境里面可以设置某个按钮的Enabled是否为False,所以我在VBA里面可以控制那个打印的按钮为灰色,我用同样的办法在Delphi里面判断,那个按钮的Enabled确实为False,也就是楼主的说法一样,转成Delphi的代码如下: OleContainer1.OleObject.CommandBars['Standard'].Controls[2].Enabled := True;// 设置按钮可用 OleContainer1.OleObject.CommandBars['Standard'].Controls[2].Execute;// 执行,相当于单击 其中Standard常用工具条, 2表示打开 1为新建 3为保存 5为打印预览,也就是按钮的顺序,自己可以查 对应的VBA代码为 CommandBars("Standard".Visible = True CommandBars("Standard".Controls(2).Execute 我现在这样做会发生两个错误,如果设置visible,那么工具栏整个都不见了,如果用DoVerb刷新,刚刚的设置就不生效,另外一个是执行Execute会发生错误 个人看法,希望对楼主有借鉴意义, 另外 to younghat,如果方便请告知方法,这个问题在论坛好像几年都没有解决,谢谢
凑个热闹,看了点资料,想法还不成熟,希望能给楼主一些借鉴价值 我用VBA在Word环境里面可以设置某个按钮的Enabled是否为False,所以我在VBA里面可以控制那个打印的按钮为灰色,我用同样的办法在Delphi里面判断,那个按钮的Enabled确实为False,也就是楼主的说法一样,转成Delphi的代码如下: OleContainer1.OleObject.CommandBars['Standard'].Controls[2].Enabled := True;// 设置按钮可用 OleContainer1.OleObject.CommandBars['Standard'].Controls[2].Execute;// 执行,相当于单击 其中Standard常用工具条, 2表示打开 1为新建 3为保存 5为打印预览,也就是按钮的顺序,自己可以查 对应的VBA代码为 CommandBars("Standard".Visible = True CommandBars("Standard".Controls(2).Execute 我现在这样做会发生两个错误,如果设置visible,那么工具栏整个都不见了,如果用DoVerb刷新,刚刚的设置就不生效,另外一个是执行Execute会发生错误 个人看法,希望对楼主有借鉴意义, 另外 to younghat,如果方便请告知方法,这个问题在论坛好像几年都没有解决,谢谢