2015-07-19 47 views
0

我有一個應用程序,我使用了很多層次菜單項,每個菜單項都有一個與之關聯的文本模板。一切都是在設計時完成的,菜單項和文本模板是不變的。在應用程序上,選擇菜單項時,將相關文本模板插入到synedit控件中。delphi/lazarus中的很多菜單項

什麼是設計這個好方法?我的想法是,通過IDE插入每個菜單項很麻煩,如果我想更改/添加/刪除項目,並不是非常友好,而且,它們中有很多。

+0

您可以在DFM文件中手動添加/編輯/刪除菜單項 – Kromster

+0

@Krom - 由於每個菜單項連接到某個文本對象(模板),所以我認爲使用類的項目會更好,但是我不知道如何有效地做到這一點。也許文本模板可以以某種方式創建爲常量字符串。 – hdrz

+0

您特別提到過,在運行時不會有任何變化。所以很難看到會直接編輯dfm的低效率。 (如果你甚至需要這麼做。)菜單已經是相當基本的構造。你不能和他們一起做那麼多事,設計師已經很有效率了。也許如果我們更好地理解你如何使用你的文本模板,你的擔心可能會更有意義。 –

回答

0

爲了完整,這裏是我最終(作爲完整答案):

  1. 創建一個文本文件,其中包含要插入的文本項目的模板,沒有特別的順序。我可以添加到這個文件中,而不用過多考慮後面介紹菜單的順序和邏輯。
  2. 寫了一個python腳本,它接受這個原始文件,並在上面的@Craig註釋行中創建一個資源文件,該文件與子菜單和菜單項一起排序。或者,它可以創建要在編譯時加載的D/LFM文件。
  3. 包含.res文件並在啓動時編寫一個小函數以動態創建菜單(或者可選擇包括D/LFM文件)。