问题,原先在用WordApplication 可以完成对word的控制现在好像不行了。为了此问题我曾想通过delphi 2009 找到答案,可2009里仍然最封装了officeXP。
具体问题如下:
    for i := 1 to WordApplication1.CommandBars.Count do
    begin
      for j := 1 to WordApplication1.CommandBars.Item[i].Controls.Count do
      begin
        try
           b := WordApplication1.CommandBars.Item[i].Controls.Item[j];
          if b.Id=109 then
          begin //打印预览按钮
            f:= b.Enabled;
            b.Set_Enabled(not f);
          end;
        except
          Continue;
        end;
      end;
    end;
原本用以上代码可以将WORD的打印预览按钮置灰,现在在WORD2007里已经不再管用了。 不清楚office 2007 在这方面作了什么样的调整。

解决方案 »

  1.   

    创建原型对象把,封装的WordApplication可能不支持2007,在单元中引用2007的单元,就想引用wordxp,word2000,一样,试试加入uses word2007,看看有没有
      

  2.   

    没有 word2007 在DELPHI2009里也最高也只有wordxp
      

  3.   

    装了啊,我们的DELPHI2007还是正版的。2009是网上下的。
      

  4.   

    真要无果而终了。最新资料表明,office2007废弃了CommandBars 而采用了Ribbon,因此目前DELHI所有版本上所封装的office Button操作均一并废!看来只有玩。NET了.
      

  5.   

    delphi對office2007操作沒有問題吧?(我現在在d7+office2007 excel,一切正常)
      

  6.   

    是 CommandBars 这一块有问题。别的都好使
      

  7.   

    不知道是否能完全兼容,因为DELPHI安装的时候都会提示让你装哪套OFFICE控件的。关注。
      

  8.   

    就是郁闷了,D2009 中都最高版本还是officexp ,
    所以期待着CodeGear 早点出office2007 的版本!
      

  9.   

    估计调用VBA来控件还是可以的。
      

  10.   

    用Add-in Express 2008 for VCL
    网上能找到Add-in Express 2007 for VCL的Full Source
    很好用,拖Ribbon组件来做就行了,^_^
    如果需要兼容多个版本,需要Ribbon和CommandBar各做一套命令功能控件价格也不算贵,我觉得一般的公司也能接受的
    出品公司的技术支持做得很好,值得一试XD 最近写Office Add-in写到抽风的某只飘过……
      

  11.   

    终于得到一个好消息了,Office 2007 使用的是 Ribbon 。网上也很难找到这方面的资料。找很久了!
      

  12.   

    用Add-in Express做Ribbon还是上手挺容易的,比较郁闷的Delphi里没有任何组织来提供Office2009的头文件
    除了CreateOleObject外好像没有办法调用office2009里的新方法了(比如给table套一个style)