如何通过WordApplication来修改自定义按钮的显示图标?(100分)

  • 主题发起人 主题发起人 blackbook
  • 开始时间 开始时间
B

blackbook

Unregistered / Unconfirmed
GUEST, unregistred user!
var
tempHenji:CommandbarButton;
begin
WordApplication.Connect;
tempHenji:=CommandbarButton(WordApplication.CommandBars['Standard'].Controls.Add
(msoControlButton,EmptyParam,EmptyParam,EmptyParam,EmptyParam));
tempHenji.set_caption('自定义');
tempHenji.Set_Style(msoButtonCaption);
end;
自定义的按钮没有图标和文字。一个光白板。
可是程序一运行到tempHenji.Set_Style(msoButtonCaption);就出现非法的错误。
所以 显示的格式就不能设置了 那一位大虾能够不用宏,直接在delphi里面帮我把
问题解决,小弟可以在加分。谢谢 拜托拉



 
各位兄弟 帮帮忙啊 谢谢 帮帮忙
 
tempHenji.Set_Style(2);
 
tempHenji.Set_Style(2);
和 tempHenji.Set_Style(msoButtonCaption);
没有什么区别阿。msoButtonCaption好像就是2吧。
还是不行。。。。。。 有没有那位大虾帮我试一试上面的代码。
谢谢
 
你的 CommandbarButton 是从哪儿来的?
 
jsxjd:

CommandbarButton 包含了word2000 就有了阿。
因为 commandbarcontrl没有set_style这个函数阿
而:commanbarbutton ,CommandBarPopup
CommandBarComboBox 好像都属于commandbarcontrl吧。 谢谢你了
一定要帮我一把阿 对了 你调试能不能通过?
 
我连 CommandbarButton; 都找不到!
但这个问题应该很好解决,你查看一下 word 的 VBA 中的帮助文档,我的机子没有装文档。

你也可以通过 activeX 自己引入 word.application ,不要用默认安装的。

我对 word 的操作一般不这么做。以下代码供你参考

58. 操作WORD菜单
以下程序在Word 2000的“文件”菜单前添加“Custom”菜单,
并在其下添加“Import”菜单项。
请仔细研究,我已经调试通过。

uses ...,ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
WordApp,
myMenuBar,
newMenu,
ctrl1:OleVariant;
begin
WordApp :=CreateOleObject('Word.application');
WordApp.visible:=true;
myMenuBar :=WordApp.CommandBars.ActiveMenuBar;
newMenu := myMenuBar.Controls.Add(10,1,1,1,true);
newMenu.Caption := 'Custom';
ctrl1 := newMenu.CommandBar.Controls.Add(1,1,0,1,false);
ctrl1.Caption := 'Import';
ctrl1.TooltipText := 'Import';
ctrl1.Style := 2;
end;


 
问题已经解决。
CommandbarButton 是 office2000里面的。
由于 我的程序要在一个地方得到自定义按钮的点吉事件,而查资料的到的参数是要用
commandbarbutton. 所以转换一下。故不能用OleVariant(由于 我怎么也不能把loevariant转换
成功转换成commandbarbutton类型); 所以 才没有办法用commandbarbutton;
后来重新导入了一次office2000的申明文件就行了。原来是delphi自代的一个小bug ;
(也许是我的office的bug 呵呵呵呵) 现在一切都很正常了 客户也解决了 :)
谢谢关注 谢谢。
 
接受答案了.
 
我也碰到这个问题,可是一直解决不了。一执行到
tempHenji.Set_Style(msoButtonCaption);程序就报
“Access violation at 7875550A address in module 'RPCRT4.DLL'.
哪位大侠能帮我解决一下.
 
后退
顶部