2015-06-19 94 views
-3

如何使用Delphi创建一个简单的customtaskpane,不使用加载项express,并将customtaskpane添加到excel中。在delphi中创建excel CustomTaskPane(加载项)

Taskpane将使用托管自己做XE7,office2010.pas,excel2010.pas

+0

你到目前为止取得了什么成就?你是如何实现你的加载项的?您是否阅读过关于如何制作任务窗格的MS文档? –

+0

@DavidHeffernan 1.so far on this only'ntp:= TCustomTaskPane.Create(nil);'2.yes我实现了加载项和色带控件(因为NDA我无法发布代码)。 3.yes我读了ms-文档,但示例显示myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1,“我的任务窗格”)',我不明白。 –

+0

看起来像VSTO文档。你需要使用COM API。由于我看不到您的任何代码,我无法看到我可以提供任何帮助。 –

回答

0

有1个按钮(关闭)

procedure TMyAddin.OnConnection(const Application: IDispatch; ConnectMode: ext_ConnectMode; const AddInInst: IDispatch; var custom: PSafeArray); 
var FApp:ExcelApplication; 
CTP:TCustomTaskPane; 
begin 
... 
    CTP:=TCustomTaskPane.Create(Self); 
//? 
    CTP.Visible:=True; 
end; 

。 对于任何人谁具有同样的问题,解决方案张贴在这里

  • 创建插件
  • 添加的ActiveX形式的插件项目
  • 添加以下代码以插件的.pas文件
procedure TmyAddin.CTPFactoryAvailable(const CTPFactoryInst: ICTPFactory); safecall; 
Var 
    CTP: _CustomTaskPane; 
// NP: TActiveXformClass; 
begin 
    CTP:= CTPFactoryInst.CreateCTP('<replace with add-in name>.<replace with activeXform name>', 'pane caption', EmptyParam); 
// NP := TNavigationPane(ctp.ContentControl); 
    CTP.Visible := true; 
end;