簡體   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