首页亚洲城官网 › 体验至上,Online开始获得简化版Ribbon工具栏

体验至上,Online开始获得简化版Ribbon工具栏

原标题:[图]Office Online开端得到简化版Ribbon工具栏:有多个本子

Ribbon分界面包车型客车Office插件开荒,ribbonoffice插件

     
此乃开博第3篇也。Office插件开垦是一项古老的技艺,如同从office3000起来,Office的插件连串就早已定位下来,后续版本也只是在不断完善和出席新效用。Office插件是在COM模型的功底上,达成了特定的接口,进而通过COM技能进行相互操作的二个dll文件。通过在对应的注册表地方进行注册,就可以被Office程序调用。

在承接本篇教程从前,先来介绍一下这次开采的着力条件:

开垦工具:Delphi 7 集团版

系统遭遇:Win7 611人系统 安装WPS Office 201三SP三(九.1.0.4玖5三)

      基于WPS V九版的API,那个本子基本相称 MS Office 2007,你也足以根据MS Office的API接口,效果是千篇壹律的。本课程同时可用来MS Office 和 WPS Office。

Office插件是3个兑现了IDTExtensibility贰接口的COM组件,在导入相应的类型库后就能够引用AddInDesignerObjects_TLB.pas的相关接口,它的宣示如下:

图片 1

  _IDTExtensibility2 = interface(IDispatch)
    ['{B65AD801-ABAF-11D0-BB8B-00A0C90F2744}']
    procedure OnConnection(const Application: IDispatch; ConnectMode: ext_ConnectMode; 
                           const AddInInst: IDispatch; var custom: PSafeArray); safecall;
    procedure OnDisconnection(RemoveMode: ext_DisconnectMode; var custom: PSafeArray); safecall;
    procedure OnAddInsUpdate(var custom: PSafeArray); safecall;
    procedure OnStartupComplete(var custom: PSafeArray); safecall;
    procedure OnBeginShutdown(var custom: PSafeArray); safecall;
  end;

 

在此不多做牵线,具体可参看MSDN,里面有详细的牵线。

Ribbon分界面是Office2007新扩大的分界面,那些分界面包车型客车插件开垦,将分界面设计与效率实现举行了分手,分界面以XML文件进行定义,功能完结以回调函数的花样调用,与价值观的工具栏和菜单情势的插件相比较,开拓效能要高的多,本教程要介绍的便是这一本事。

在促成Ribbon分界面,在插件中除了要促成IDTExtensibility二接口外,还要落到实处Ribbon分界面包车型大巴专用接口IRibbonExtensibility,这些接口定义在Office的种类库中,表明如下:

 

  IRibbonExtensibility = interface(IDispatch)
    ['{000C0396-0000-0000-C000-000000000046}']
    function GetCustomUI(const RibbonID: WideString): WideString; safecall;
  end;

 

其壹接口只有八个方法GetCustomUI,再次来到值为分界面设计的XML文件内容。大家本次要兑现的分界面XML内容如下:

 

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="DemoTab" label="育林软件">
                <group id="loadFormsGroup" label="测试分组">
                    <button id="btn1" label="测试功能" onAction="OnAction" getImage="GetImage"/>
                    <button id="btn2" label="关于我们" onAction="OnAction" getImage="GetImage"/>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

 

至于XML的概念规则请参照他事他说加以调查MSDN,上边有详细介绍。OnAction是回调函数,用于响应按键点击,GetImage用于重回开关的图样。

大家的COM对象定义如下:

 

type
  TTestRibbon = class(TAutoObject, IDTExtensibility2, IRibbonExtensibility, ITestRibbon)
  private

  protected
    {实现IRibbonExtensibility接口}
    function GetCustomUI(const RibbonID: WideString): WideString; safecall;
    {实现IDTExtensibility2接口}
    procedure OnConnection(const Application: IDispatch; ConnectMode: ext_ConnectMode;
      const AddInInst: IDispatch; var custom: PSafeArray); safecall;
    procedure OnDisconnection(RemoveMode: ext_DisconnectMode; var custom: PSafeArray); safecall;
    procedure OnAddInsUpdate(var custom: PSafeArray); safecall;
    procedure OnStartupComplete(var custom: PSafeArray); safecall;
    procedure OnBeginShutdown(var custom: PSafeArray); safecall;
    {实现ITestRibbon接口,这两个方法就是我们要用的回调函数}
    procedure OnAction(const ctrl: IDispatch); safecall;
    function GetImage(const ctrl: IDispatch): IDispatch; safecall;
  public

  end;

 

ITestRibbon是大家com对象定义的接口,它有八个方法OnAction和GetImage,要是XML中定义的控件较多,大家要求加上的回调函数就越多,每个控件的回调函数都以相差无几,大家达成的正是针对性普通按钮的回调函数,必要在delphi的类型库编辑器中丰盛,如下图。

图片 2

 

    
OnAction你也能够定义为别的名称,只要参数类型同样,什么名字都得以,但要注意名称一定要跟XML中定义的同1,也便是说你那边定义的怎么着名字,XML文件中onActon前面也要用什么名字。类型库导入完结,接口定义达成就从头落到实处部分了,那才是重视。说实话,在接口定义部分本身也走了众多弯路,切磋了多少个夜晚才搞驾驭,网络基于.net的连带内容不少,但仿照效法性不强,.net将com的兑现实行了打包,开垦者不用关切定义,只要写代码就能够了,但delphi要做的干活还有为数不少。就算费劲,但便宜依然有个别,.net开采的插件要附带繁多文书,delphi开辟的插件只要揭橥3个dll就能够了。

上边大家来看落实部分,先看GetCustomUI:

 

function TTestRibbon.GetCustomUI(const RibbonID: WideString): WideString;
var Str:TStrings;
begin
  Str:=TStringList.Create;
  Str.LoadFromFile('C:\CustomUI.xml');
  Result := Str.Text;
  Str.Free;
end;

    
这里我们挑选从文件载入XML数据,主若是为了早先时期修改与调整方便,等到发表的时候,完全能够将XML文件参与进财富文件,从财富中载入。

到这里,假如我们编写翻译后安装插件,就足以在Office中呈现大家的按键了,但鉴于尚未兑现OnAction,所以点击按键是从未别的反馈的,上边我们来兑现OnAction回调函数。它的定义如下:

procedure OnAction(const ctrl: IDispatch); safecall;

凭借微软的概念,ctrl是1个IRibbonControl接口的参数,那些接口定义在Office的通用项目库中,这么些参数是我们看清毕竟是哪些按钮调用了那几个函数的基本功,正是根据IRibbonControl的ID属性,那几个ID正是XML中定义的Id,我们的贯彻如下:

 

procedure TTestRibbon.OnAction(const ctrl: IDispatch);
begin
  if (ctrl as IRibbonControl).Id = 'btn1' then
    MessageBox(0, '您点击了按“测试功能”!', '提示', MB_OK + MB_ICONINFORMATION)
  else
    MessageBox(0, '您点击了按钮“关于我们”!', '提示', MB_OK + MB_ICONINFORMATION);
end;

到此三个轻便的插件就早已到位了,下边说一下插件安装。

将以下内容保存为注册表文件.reg,并双击导入注册表。

 

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\Yulinsoft.TestRibbon]
"FriendlyName"="测试Ribbon插件"
"Description"="测试插件"
"LoadBehavior"=dword:00000003
"CommandLineSafe"=dword:00000001

[HKEY_CURRENT_USER\Software\Kingsoft\Office\WPS\AddinsWL]
"Yulinsoft.TestRibbon"=""

 

下一场再用命令行regsvr3二挂号大家的dll,注意文件路线准确,注册成功后张开Word200柒或WPS,就能够见见我们的按钮了,如下图:

图片 3

【原创作品,转载请阐明出处】 

本学科全体代码与资源文件下载:

本文参照他事他说加以考查剧情如下:

Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)

Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)

Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)

初来贵地沟通技巧,如有不对之处,应接我们商议指证。下节大家将执教如何给按键加多图像!

 

此乃开博第二篇也。 Office 插件开采是壹项古老的技艺,就好像从 office2000初阶, Office 的插件体系...

 

小编:

  • 越是人性化的用户体验

老大风趣的是,
Online上出现了三种不相同版本的的Ribbon工具栏,多少个版本在荧屏顶上部分都有“简化版Ribbon”的开关的,当中多个版本的Fluent
Design设计要比另三个更就好像方形。猜想如今正值进展A/B测试,依照用户反馈以决定在最后版中规定使用哪个版本。归来腾讯网,查看越来越多

多多用户反映不习于旧贯 Office 二〇〇七中那多少个左上角的圆形按键,因为她们每一遍遭遇文件有关的操作时,总是习贯性地找“文件”菜单。在
Office 二零零六中,“文件”菜单又“回来了”,点击Ribbon功效区第二个以彩色器重呈现的“文件”标签页,您就能够前往全新的“后台湾电视机中心图(Backstage
View)”。在这里,您能够统一查看文书档案的版本及其它音信,对文书档案举办各个设置,共享和通知文档,或是调节并打字与印刷文书档案。后台湾电视机中心图也干净停止了
Office 2005中的这些圆形下拉菜单,固然你要对文书档案举行八种各个的管住操作,也无须数次点击下拉菜单了。

多少个月前,微软就曾揭穿将会对Office
365的Ribbon工具栏实行重复规划,引进Fluent
Design设计因素的同时会在不计其数细节上进展调节。援引韩媒Thurrott.com网址报纸发表,公司会依照进程稳步推进Office
3六五和Office Online,而前几天到底轮到Office Online了。

—— 以人为本 体验至上(2)

 

一旦你在 Office 二零一零中编辑或然更换了文书档案而未有保留(但当中先后依照一定的光阴距离为你自动保存了),关闭时,就能够冒出图中所示的对话框。在此间,就算你点击不保留,那么您关闭时文书档案的1个终极的本子也会被暗中同意保留二十四日,之后你随时可以因此Office相应程序展开你未保存的本子。从此,您在也不用为当年不曾保留有些文档就停业了它而后悔莫及了。

至于文书档案版本管理那一新功效的越多内容,埃里克会在继续的文山会海博文中为我们详细介绍。

图片 4

图片 5

转载本站文章请注明出处:亚洲城手机版客户端 https://www.juhuadelai.com/?p=1868

上一篇:

下一篇:

相关文章