2017-02-24 70 views
2

我們需要創建一個文本編輯器類型的應用程序,可以同時打開多個文本窗口LiveCode開發人員如何模擬標準模板中的多個打開的文檔?

窗口應該都使用相同的堆棧佈局。

是否可以多次打開一個堆棧就好像堆棧是模板或「文具」?

如果是這樣,那麼我們就可以注入empty文本對OpenStack的文本字段創建使用堆棧作爲模板的新空白文本編輯器文件。

如果用戶想打開一個現有的文本文件,然後我們就可以put URL "file://xyz.txt" into field "Text Editor" of stack "the new text editor window"

這將是概念上像這是不可改變的「文具」文檔中的舊的Mac經典的想法,但是當用戶雙擊上Finder中的文檔將在新窗口中打開,並稱爲「無標題#1」。

我們似乎記得曾經有一個LiveCode中的設置將子堆棧保存爲「模板」,以便它可以用來顯示多個相同的窗口。

谷歌搜索,並通過LiveCode UI和詞典搜索,我們發現的唯一的事情後, templateStack

如果我們使用templateStack那麼我們將不得不以編程方式生成整個堆棧,這就背離了LiveCode的簡單編程範例。

我們正在接近這個錯誤嗎?

LiveCode開發人員如何模擬標準模板中的多個打開文檔?

,我們遇到的唯一workaroud是創造一個亞組爲模板,保持模板隱藏,然後當我們需要一個新的文本編輯器窗口中,我們將需要:

  1. 創建一個新的完全空棧
  2. 對於模板棧每個項目...
    • 在新的文本編輯器窗口中創建一個重複的項目。

我們是在錯誤的軌道上?

回答

3

您可以使用「克隆」,如下所示。 (這不是'模擬',而是使用模板堆棧的一種方法。)

local templatePath="/Users/admin/myTemplates" 

on mouseUp 
    lock screen 
    -- clone from file 
    put templatePath & "/mytemplate.livecode" into longPath 
    clone stack longPath 
    -- # or clone from an open stack: 
    -- clone stack "mytemplate" 
    put 1 into J 
    repeat while there is a stack ("copy_"&J) 
     add 1 to J 
    end repeat 
    put ("copy_"&J) into newName 
    set name of it to newName -- named but not yet saved! 
    set title of stack newName to (newName & " (not yet saved)") 
    go stack newName 
    put URL ("file:" & templatePath & "/myNew.txt") into fld "mainEdit" 
    unlock screen 
end mouseUp 
+0

謝謝你的想法。我們不知道'clone'命令。我們還沒有運行你的代碼示例,但這個概念似乎很清楚。 – Tacitus

+0

我們可能會調整它並試圖在項目中使用現有的子包,但是從中可以製作出「克隆」。 除非有人提出更好的方法,否則我們會在幾天後回來並將您的答案標記爲首選解決方案。 謝謝你的幫助! – Tacitus

+0

後續行動:上述方法似乎是完成任務的方法。 LiveCode編輯器會詢問您是否想要將每個克隆堆棧保存到主堆棧中,當您嘗試關閉每個堆棧時,以及如果保存主堆棧,還會保存當前打開的子堆棧克隆。所以在開發過程中要注意這種問題,但是當您保存爲獨立應用程序時,不會發出這種煩人的警告。 – Tacitus

相關問題