繁体   English   中英

Libre/Open/Collabra Office 中的 getScriptProvider 和 createScriptProvider

[英]getScriptProvider and createScriptProvider in Libre/Open/Collabra Office

If location="document" Then
    sp = ThisComponent.getScriptProvider()
Else
    mspf = CreateUNOService("com.sun.star.script.provider.MasterScriptProviderFactory")
    sp = mspf.createScriptProvider("")
End If

这是文档中的一个相当标准的示例:这里有一个示例: https ://help.libreoffice.org/7.1/en-US/text/sbasic/guide/basic_2_python.html,它已经存在了一段时间:那里是同一个地方的 /6.4/ 例子。

知道为什么用 getScriptProvider 和 createScriptProvider 那样写吗? 该构造表明在某些情况下您必须创建脚本提供程序,因为您无法获取现有脚本提供程序。 但在我的检查中,getScriptProvider 也适用于“用户”和“共享”(它们只是用于查找脚本的不同位置)。

这对我来说并不重要,因为我只使用 location="document",但是有没有人记录过 getScriptProvider 失败的情况?

再看看你问的那一行。

sp = .getScriptProvider()

在某些情况下,您可能没有要使用的组件,例如,如果当前文档已经(或将要)关闭。 因此,改为从 MasterScriptProviderFactory 获取脚本提供程序。

脚本提供者的来源决定了哪些代码可以运行。 如果代码在不同的文档中,则从该文档中获取脚本提供程序,尤其是当函数在不同的文档中具有相同的名称时。

usershare的一个好处是无论脚本提供者来自哪里,它们都可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM