如何用delphi在word中创建一个按钮! |
答題得分者是:william
|
reebokmonkey
一般會員 發表:44 回覆:73 積分:23 註冊:2003-08-06 發送簡訊給我 |
请问!如何用delphi中在word中创建一个按钮!我在一本叫"delphi深度探索"的书中看见有例程可是最关键的添加按钮的语句出错了 BtnIntf := DICommandBar.Controls.Add(msoControlButton, EmptyParam,
EmptyParam, EmptyParam, 1);
错误信息是参数错误!查了好多书都没看见关于这个方法的资料! 如果那位老兄知道在那能找到上面资料或这有其它的办法用delphi中在word中创建一个按钮.我将感激不禁/
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&th=e46b078e13630075&rnum=2 http://groups.google.com.tw/groups?q="Controls.Add" + word + delphi&hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&selm=VA.00000573.0058118d@cableinet.co.not-this-bit.uk&rnum=4 http://groups.google.com.tw/groups?q="Controls.Add" + word + delphi&hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&selm=VA.00001046.0061f31e@cableinet.co.not-this-bit.uk&rnum=8 http://groups.google.com.tw/groups?q="Controls.Add" + word + delphi&hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&selm=VA.00000fef.00ce4f21@cableinet.co.not-this-bit.uk&rnum=10 http://groups.google.com.tw/groups?q="Controls.Add" + word + delphi&start=10&hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&selm=VA.00000807.00356688@cableinet.co.not-this-bit.uk&rnum=11 ---
--<-<-<@
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
reebokmonkey
一般會員 發表:44 回覆:73 積分:23 註冊:2003-08-06 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
reebokmonkey
一般會員 發表:44 回覆:73 積分:23 註冊:2003-08-06 發送簡訊給我 |
william:
你好!非常感谢你能回答我的问题.以下是我OnStartupComplete事件中的全部代码!按照你的方法该了可还是不行,不知是不是我其它的地方写错了. procedure TAddIn.OnStartupComplete(var custom: PSafeArray);
var
MenuIntf, BtnIntf :CommandBarControl;
i : integer;
ToolsBar : CommandBar;
EmptyParam:OleVariant; begin
DICommandBar := nil;
for i := 1 to WordApp.CommandBars.Count do begin
if (WordApp.CommandBars.Item[i].Name = 'Delphi Informant') then
DICommandBar := WordApp.CommandBars.Item[i];
end; // see if we alreadt registered the command bar with Word
if (Not Assigned(DICommandBar)) then begin
DICommandBar := WordApp.CommandBars.Add('Delphi Informant',msoBarTop , False, True);
DICommandBar.Set_Protection(msoBarNoCustomize);
end;
if (DICommandBar.Controls.Count > 0) then
BtnIntf := DICommandBar.Controls.Item[1]
else
BtnIntf := DICommandBar.Controls.Add(msoControlButton,EmptyParam,EmptyParam,EmptyParam,msoTrue); DIBtn := TButtonServer.Create(nil);
DIBtn.ConnectTo(BtnIntf as _CommandBarButton);
DIBtn.Caption := 'Delphi Test';
DIBtn.Style := msoButtonCaption;
DIBtn.Visible := true;
DIBtn.OnClick := TestClick; DICommandBar.Set_Visible(true); ToolsBar := WordApp.CommandBars['Tools'];
MenuIntf := ToolsBar.FindControl(EmptyParam, EmptyParam, 'DIMenu', EmptyParam, EmptyParam);
if (not Assigned(MenuIntf)) then
MenuIntf := ToolsBar.Controls.Add(msoControlButton, EmptyParam,
EmptyParam, EmptyParam, EmptyParam);
DIMenu := TButtonServer.Create(nil);
DIMenu.ConnectTo(MenuIntf as _CommandBarButton);
DIMenu.Caption := 'Delp&hi Menu';
DIMenu.ShortcutText := '';
DIMenu.Tag := 'DIMenu';
DIMenu.Visible := true;
DIMenu.OnClick := MenuClick;
end;
|
reebokmonkey
一般會員 發表:44 回覆:73 積分:23 註冊:2003-08-06 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Then I think you need a real OleVariant, e.g.
var oTrue: OleVariant; ... oTrue := True; BtnIntf := DICommandBar.Controls.Add(msoControlButton,EmptyParam,EmptyParam,EmptyParam,oTrue);or simply pass an EmptyParam to it: BtnIntf := DICommandBar.Controls.Add(msoControlButton,EmptyParam,EmptyParam,EmptyParam,EmptyParam); |
reebokmonkey
一般會員 發表:44 回覆:73 積分:23 註冊:2003-08-06 發送簡訊給我 |
|
reebokmonkey
一般會員 發表:44 回覆:73 積分:23 註冊:2003-08-06 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
reebokmonkey
一般會員 發表:44 回覆:73 積分:23 註冊:2003-08-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |