[Profile] 幫漢書加上「我的最愛」

HyperEditor Q&A/技術交流
主題已鎖定
dllee
進階會員
文章: 43
註冊時間: 29日 5月 2003年, 08:34
聯繫:

[Profile] 幫漢書加上「我的最愛」

文章 dllee »

以下的 pro 檔頭的說明文件,提供您需不需要下載的參考。
如果有任何使用上的問題或意見,請回應,謝謝。


;;======================================
;; MyFavorites.pro  我的最愛         v0.41  【漢書Profile】he7.07+
;;
;; 2002.02.28 (c) by 李棟樑 <dllee@edirect168.com> http://dllee.ktop.com.tw
;;======================================
;;
;; ■ 前言
;;
;;  在多數的文書編輯器中都已加入了「我的最愛」的弁遄A而漢書可能在未來的
;;  版本才會加入這個弁遄C
;;  本來筆者想把這個弁鉏g入主選單中,不過,考量到在操作的過程會一直修改
;;  主選單 He7.m2d ,如果巨集程式有誤,還可能把可用的主選單破壞了,於是,
;;  在目前的版本先使用 INI 檔來記錄我的最愛,而用自定工具列管理我的最愛。
;;  自 0.2 版開始,增加使用 .pop 選單的方式來完成,對於鍵盤操作者更是方便。
;;  自 0.3 版開始,增加 dir 及 NONAME 空白文件。
;;
;; ■ 安裝方法
;;
;;  ○ 如果您沒有自己定義 my.pro 可以直接將本檔案改名成 my.pro 放在漢書的
;;    安裝目錄即可。
;;
;;  ○ 如果您有自己定義 my.pro ,請在 my.pro 的 def autoexec 中加入以下的
;;    設定
;;
;;     def autoexec=[exist myfavorites.pro]
;;            [if %Exist][m myfavorites.pro][end]
;;
;;    如果您還沒有定義 autoexec 則直接將上面一行文字去掉前面的空白及註解 ;;
;;    貼到您的 my.pro 中即可。
;;    如果您已定義 autoexec 則將上述的定義加在您原本 autoexec 定義之後即可。
;;
;; ■ 操作說明
;;
;;  □ 使用按鈕/弁鉡?自定工具列
;;
;;    ○ 自定工具 ?j 或 Ctrl-5 或 Ctrl-Alt-F5
;;
;;     管理「我的最愛」。
;;     提供以下弁?對話視窗下方的按鈕)
;;     1. [移除選擇檔案(&D)] 移除所選的「我的最愛」,原始檔案還在,只是去除選項
;;     2. [編輯(&E)]     開啟所選的「我的最愛」
;;     3. [取消(&C)]     取消動作
;;     4. [增加目前檔案(&A)] 將目前編輯的檔案加入「我的最愛」
;;
;;     對於愛用鍵盤的使用者:
;;       在「我的最愛」檔案列表中可以用上下鍵選擇,按下 Enter 即可開啟
;;       所選的「我的最愛]。
;;
;;     對於愛用滑鼠的使用者:
;;       在「我的最愛」檔案列表中可以用滑鼠左鍵雙點(Double-Click) 檔案,
;;       即可開啟所選的「我的最愛]。
;;
;;    ○ Ctrl 快按兩下
;;
;;     叫出「我的最愛 pop 選單」,可以快速選擇前 26 個最愛,或是加入目前檔案
;;     到我的最愛,也可以叫出管理我的最愛視窗。
;;
;;    ○ 如果您希望在漢書一執行就立刻叫出『我的最愛』選單,請將漢書中
;;
;;       「D顯示」→「F 進入漢書立刻 DIR」
;;
;;     勾選的選項取消,這樣在一進入漢書時,『我的最愛』選單就會出現。
;;     如果該選項是勾選的,那一進入漢書就會顯示 DIR 。此時可以按 Ctrl-5
;;     或按 Ctrl 兩下,叫出『我的最愛』選單。
;;
;;    ● 註:
;;     會使用自定工具?j 是因為筆者的另一個巨集 SafeSave.pro 已使用了
;;     自定工具?f?g?h?i ,所以,筆者將我的最愛的弁鈳]定在?j。
;;
;;    ● 注意
;;     以上所有的按鍵弁遄A可能會因為您所使用的中文輸入法,將該按鍵先行
;;     攔截,而導致按下該按鍵時沒有上述的反應,此時,可以先按 Ctrl-Space ,
;;     切回英文輸入狀態,作完想作的弁鄎寣A再按 Ctrl-Space 切回中文輸入。
;;     如筆者所使用的「自然輸入法」就會攔截 Ctrl-1,2,3,4,6,7,9 等按鍵,
;;     由於每一家的中文輸入法內建的熱鍵不同,狀況也不同,無法一一作解釋,
;;     請在使用時自己多注意。
;;     解決的方法就是去改 profile 檔的按鍵定義,讓您所常用的弁鉡隞P中文
;;     輸入法的熱鍵分開即可。
;;
;;
;; ■ 巨集/按鍵定義
;;
;;  icon5          新增 自定工具?j    管理「我的最愛」。
;;              新增 Ctrl-5      管理「我的最愛」。
;;  c-f5          新增 Ctrl-Alt-F5    管理「我的最愛」。
;;  ctrl-2         新增 Ctrl 快按兩下   叫出「我的最愛 pop 選單」。
;;  mouse-m2        新增 滑鼠中鍵 快按兩下 叫出「我的最愛 pop 選單」。
;;
;;  mf_initialize      我的最愛初始化,會自動產生內定的最愛(dir,NONAME)
;;  mf_loadFileName     載入我的最愛列表
;;  mf_openItem       開啟我的最愛檔案
;;  mf_deleteItem      刪除某一我的最愛
;;  mf_addItemDialog    加入我的最愛  輸入檔案別名,再按 [加入] 即可
;;  myfavorites       管理我的最愛  提供管理/使用我的最愛的所有弁
;;  myfdir         在選到『檔案目錄列表』時對 .DIR 的處理
;;  createmfpop       動態建立我的最愛 pop 選單檔
;;
;; ■ 自行修改定義
;;
;;  □ 目前筆者只有定義 myfavorites 巨集的自定工具及熱鍵,以便使用者操作。
;;    如果您覺得 mf_addItemDialog (加入我的最愛) 這個弁鄐]很常用的話,
;;    可以自行定義熱鍵或工具列給它,例如,將自定工具?k 定義給加入我的最愛:
;;
;;    set userhint6 加入我的最愛
;;    def icon6=[mf_addItemDialog]
;;
;;  □ 對於滑鼠操作愛用者,可以自行將 ctrl-2 的定義,加入到某個滑鼠操作中,
;;    便於使用滑鼠叫出我的最愛 pop 選單。
;;    不過,筆者較少使用滑鼠,所以不知道要放在那個好 ^_*
;;
;;
;; ■ 已知問題
;;
;;  1. [ltext %strPath, 16, 52]
;;    ltext 有兩個 BUG,一個 BUG 是在顯示字串時,如果字串後沒有預留空白,
;;    可能後面幾個字會秀不出來。
;;    還有一個 BUG 是如果字串太長,會造成漢書當掉!!
;;    在 0.4 版中,已經加入了字串長度的判斷,除去可能因字串太長而使 ltext
;;    造成漢書當掉的 BUG。
;;
;;  2. 漢書對於 NONAME 這個空白檔案,在存檔時都會要求使用者另存新檔。不過,
;;    以目前漢書(7.082)的作法,內定另存新檔的目錄是目前工作目錄。您可以試試
;;
;;     e C:\NONAME
;;     e #\NONAME
;;     e NONAME
;;
;;    好像開出了三個空白檔案於不同的目錄,但是當您對這三個空白檔按下存檔時,
;;    其另存新檔的目錄都會是一樣的!!也就是目前的工作目錄。
;;    也因為如此,筆者在 0.4 版中,分出
;;
;;      新增空白文件(我的文件夾)
;;      新增空白文件(目前工作目錄)
;;
;;    其中,新增空白文件(我的文件夾),就會將工作目錄切換到『我的文件』。
;;    如果您不喜歡這樣的作法,可以不要選『新增空白文件(我的文件夾)』
;;    或是將 MyFavorites.ini 中
;;
;;      新增空白文件(我的文件夾)="#\NONAME"
;;
;;    這一行刪除後存檔,再將 MyFavorites.pop 刪除,再次重新啟動漢書,
;;    就不會有『新增空白文件(我的文件夾)』這個選項了。
;;
;;  3. [mf_openItem %ListBox] 有時不能正確地將 %ListBox 傳給 mf_openItem
;;    巨集,會將選到的 %ListBox 變成傳 NULL 給 mf_openItem ,導致開啟
;;    檔名為 NULL 的檔案。
;;    目前的解決方法:將 mf_openItem 巨集寫入 myfavorites 中,不用
;;    %ListBox 傳給 mf_openItem 以避免問題。
;;    猜想是不是在選到的 Item 中有空白或特殊字元所導致的誤判?
;;
;;
;; ■ 改版歷程
;;
;;  □ 2002.02.28 v0.4
;;
;;    ○ 解決『我的最愛』檔案全名太長時,在加入最愛時會造成漢書當機!
;;    ○ 新增內定的最愛『新增空白文件(目前工作目錄)』。
;;    ○ 如果在管理我的最愛時,選擇「刪除選擇檔案」的弁鉈氶A不會關閉
;;     管理我的最愛視窗,以便使用者進一步刪除其他的最愛連結,或是選擇
;;     某一個最愛開始編輯。
;;    ○ 新增 滑鼠中鍵 快按兩下 可以叫出「我的最愛 pop 選單」。
;;    ○ 在「我的最愛 pop 選單」中新增選項:「最近開啟的檔案」。
;;    ○ 改變「我的最愛 pop 選單」的排列,將內定的最愛:「最近開啟的檔案」、
;;     DIR、#\NONAME、NONAME 等等的選項放到最上面,以增加使用者自定的最愛。
;;     (因為目前的「我的最愛 pop 選單」只能顯示出 26 個使用者自定的最愛。)
;;    ○ 加大我的最愛管理視窗的高度,以一眼看出更多的最愛。
;;
;;  □ 2002.02.06 v0.3
;;
;;    ○ 新增內定的最愛:『檔案目錄列表』及『新增空白文件』。
;;
;;  □ 2002.01.30 v0.2
;;
;;    ○ 新增「我的最愛 pop 選單」,按 Ctrl 兩下可叫出。
;;
;;  □ 2002.01.26 v0.1
;;
;;    ○ 使用 INI 、自定工具列的方式完成初版「我的最愛」。
;;    ○ 雖然舊版就可以支援 INI 讀寫,但本版使用 [resetdialog] 對於
;;     V7.06(含以下) 的版本,可能會發生當機,建議升級到 V7.07 再使用。
;;
;;======================================
;; 2002.02.28(c)v0.41 by 李棟樑<dllee@edirect168.com> http://dllee.ktop.com.tw
;;======================================
附加檔案
myfavorites.pro
幫漢書加上「我的最愛」,按 Ctrl 兩下即可開啟我的最愛選單。
(20.21 KiB) 已下載 171 次
dllee
進階會員
文章: 43
註冊時間: 29日 5月 2003年, 08:34
聯繫:

直接把 pro 檔都放上來好了,用需要的請儘量使用 :D

文章 dllee »

代碼: 選擇全部

;;======================================
;; MyFavorites.pro   我的最愛                  v0.41    【漢書Profile】he7.07+
;;
;; 2002.02.28 (c)  by  李棟樑 <dllee@edirect168.com>  http://dllee.ktop.com.tw
;;======================================
;;
;; ■ 前言
;;
;;    在多數的文書編輯器中都已?#91;入了「我的最愛」的功能,而漢書可能在未來的
;;    版本才會?#91;入這個功能。
;;    本來筆者想把這個功能寫入主選單中,不過,考量到在操作的過?#123;會一直修改
;;    主選單 He7.m2d ,如果巨集?#123;式有誤,還可能把可用的主選單?#125;壞了,於是,
;;    在目前的版本先使用 INI 檔來記錄我的最愛,而用自定工具列管理我的最愛。
;;    自 0.2 版?#125;始,增?#91;使用 .pop 選單的方式來完成,對於鍵盤操作者更是方便。
;;    自 0.3 版?#125;始,增?#91; dir 及 NONAME 空白文件。
;;
;; ■ 安裝方法
;;
;;    ○ 如果您沒有自己定義 my.pro 可以直接將本檔案改名成 my.pro 放在漢書的
;;       安裝目錄即可。
;;
;;    ○ 如果您有自己定義 my.pro ,請在 my.pro 的 def autoexec 中?#91;入以下的
;;       ?#93;定
;;
;;          def autoexec=[exist myfavorites.pro]
;;                       [if %Exist][m myfavorites.pro][end]
;;
;;       如果您還沒有定義 autoexec 則直接將上面一行文字去掉前面的空白及註解 ;;
;;       貼到您的 my.pro 中即可。
;;       如果您已定義 autoexec 則將上述的定義?#91;在您原本 autoexec 定義之後即可。
;;
;; ■ 操作說明
;;
;;    □ 使用按鈕/功能鍵/自定工具列
;;
;;       ○ 自定工具 ?j 或 Ctrl-5 或 Ctrl-Alt-F5
;;
;;          管理「我的最愛」。
;;          提供以下功能(對話視窗下方的按鈕)
;;          1. [移除選擇檔案(&D)]  移除所選的「我的最愛」,原始檔案還在,只是去除選項
;;          2. [編輯(&E)]          ?#125;啟所選的「我的最愛」
;;          3. [取消(&C)]          取消動作
;;          4. [增?#91;目前檔案(&A)]  將目前編輯的檔案?#91;入「我的最愛」
;;
;;          對於愛用鍵盤的使用者:
;;             在「我的最愛」檔案列表中可以用上下鍵選擇,按下 Enter 即可?#125;啟
;;             所選的「我的最愛]。
;;
;;          對於愛用滑鼠的使用者:
;;             在「我的最愛」檔案列表中可以用滑鼠左鍵雙點(Double-Click) 檔案,
;;             即可?#125;啟所選的「我的最愛]。
;;
;;       ○ Ctrl 快按兩下
;;
;;          叫出「我的最愛 pop 選單」,可以快速選擇前 26 個最愛,或是?#91;入目前檔案
;;          到我的最愛,?#93;可以叫出管理我的最愛視窗。
;;
;;       ○ 如果您希望在漢書一執行就立刻叫出『我的最愛』選單,請將漢書中
;;
;;             「D顯示」→「F 進入漢書立刻 DIR」
;;
;;          勾選的選項取消,這樣在一進入漢書時,『我的最愛』選單就會出?#123;。
;;          如果該選項是勾選的,那一進入漢書就會顯示 DIR 。此時可以按 Ctrl-5
;;          或按 Ctrl 兩下,叫出『我的最愛』選單。
;;
;;       ● 註:
;;          會使用自定工具?j 是?#93;為筆者的另一個巨集 SafeSave.pro 已使用了
;;          自定工具?f?g?h?i ,所以,筆者將我的最愛的功能?#93;定在?j。
;;
;;       ● 注意
;;          以上所有的按鍵功能,可能會?#93;為您所使用的中文輸入法,將該按鍵先行
;;          攔截,而導致按下該按鍵時沒有上述的反應,此時,可以先按 Ctrl-Space ,
;;          切回英文輸入狀態,作完想作的功能後,再按 Ctrl-Space 切回中文輸入。
;;          如筆者所使用的「自然輸入法」就會攔截 Ctrl-1,2,3,4,6,7,9 等按鍵,
;;          由於每一家的中文輸入法內建的熱鍵不同,狀況?#93;不同,無法一一作解釋,
;;          請在使用時自己多注意。
;;          解決的方法就是去改 profile 檔的按鍵定義,讓您所常用的功能鍵與中文
;;          輸入法的熱鍵分?#125;即可。
;;
;;
;; ■ 巨集/按鍵定義
;;
;;    icon5                   新增 自定工具?j        管理「我的最愛」。
;;                            新增 Ctrl-5            管理「我的最愛」。
;;    c-f5                    新增 Ctrl-Alt-F5       管理「我的最愛」。
;;    ctrl-2                  新增 Ctrl 快按兩下     叫出「我的最愛 pop 選單」。
;;    mouse-m2                新增 滑鼠中鍵 快按兩下 叫出「我的最愛 pop 選單」。
;;
;;    mf_initialize           我的最愛初始化,會自動產生內定的最愛(dir,NONAME)
;;    mf_loadFileName         載入我的最愛列表
;;    mf_openItem             ?#125;啟我的最愛檔案
;;    mf_deleteItem           刪除某一我的最愛
;;    mf_addItemDialog        ?#91;入我的最愛   輸入檔案別名,再按 [?#91;入] 即可
;;    myfavorites             管理我的最愛   提供管理/使用我的最愛的所有功能
;;    myfdir                  在選到『檔案目錄列表』時對 .DIR 的處理
;;    createmfpop             動態建立我的最愛 pop 選單檔
;;
;; ■ 自行修改定義
;;
;;    □ 目前筆者只有定義 myfavorites 巨集的自定工具及熱鍵,以便使用者操作。
;;       如果您覺得 mf_addItemDialog (?#91;入我的最愛) 這個功能?#93;很常用的話,
;;       可以自行定義熱鍵或工具列給它,例如,將自定工具?k 定義給?#91;入我的最愛:
;;
;;       set userhint6  ?#91;入我的最愛
;;       def icon6=[mf_addItemDialog]
;;
;;    □ 對於滑鼠操作愛用者,可以自行將 ctrl-2 的定義,?#91;入到某個滑鼠操作中,
;;       便於使用滑鼠叫出我的最愛 pop 選單。
;;       不過,筆者較少使用滑鼠,所以不知道要放在那個好 ^_*
;;
;;
;; ■ 已知問題
;;
;;    1. [ltext %strPath, 16, 52]
;;       ltext 有兩個 BUG,一個 BUG 是在顯示字串時,如果字串後沒有預留空白,
;;       可能後面幾個字會秀不出來。
;;       還有一個 BUG 是如果字串太長,會造成漢書當掉!!
;;       在 0.4 版中,已經?#91;入了字串長度的判斷,除去可能?#93;字串太長而使 ltext
;;       造成漢書當掉的 BUG。
;;
;;    2. 漢書對於 NONAME 這個空白檔案,在存檔時都會要求使用者另存新檔。不過,
;;       以目前漢書(7.082)的作法,內定另存新檔的目錄是目前工作目錄。您可以試試
;;
;;         e C:\NONAME
;;         e #\NONAME
;;         e NONAME
;;
;;       好像?#125;出了三個空白檔案於不同的目錄,但是當您對這三個空白檔按下存檔時,
;;       其另存新檔的目錄都會是一樣的!!?#93;就是目前的工作目錄。
;;       ?#93;?#93;為如此,筆者在 0.4 版中,分出
;;
;;           新增空白文件(我的文件夾)
;;           新增空白文件(目前工作目錄)
;;
;;       其中,新增空白文件(我的文件夾),就會將工作目錄切換到『我的文件』。
;;       如果您不喜歡這樣的作法,可以不要選『新增空白文件(我的文件夾)』
;;       或是將 MyFavorites.ini 中
;;
;;           新增空白文件(我的文件夾)="#\NONAME"
;;
;;       這一行刪除後存檔,再將 MyFavorites.pop 刪除,再次重新啟動漢書,
;;       就不會有『新增空白文件(我的文件夾)』這個選項了。
;;
;;    3. [mf_openItem %ListBox] 有時不能正確地將 %ListBox 傳給 mf_openItem
;;       巨集,會將選到的 %ListBox 變成傳 NULL 給 mf_openItem ,導致?#125;啟
;;       檔名為 NULL 的檔案。
;;       目前的解決方法:將 mf_openItem 巨集寫入 myfavorites 中,不用
;;       %ListBox 傳給 mf_openItem 以避免問題。
;;       猜想是不是在選到的 Item 中有空白或特殊字元所導致的誤判?
;;
;;
;; ■ 改版歷?#123;
;;
;;    □ 2002.02.28 v0.4
;;
;;       ○ 解決『我的最愛』檔案全名太長時,在?#91;入最愛時會造成漢書當機!
;;       ○ 新增內定的最愛『新增空白文件(目前工作目錄)』。
;;       ○ 如果在管理我的最愛時,選擇「刪除選擇檔案」的功能時,不會關閉
;;          管理我的最愛視窗,以便使用者進一步刪除其他的最愛連結,或是選擇
;;          某一個最愛?#125;始編輯。
;;       ○ 新增 滑鼠中鍵 快按兩下 可以叫出「我的最愛 pop 選單」。
;;       ○ 在「我的最愛 pop 選單」中新增選項:「最近?#125;啟的檔案」。
;;       ○ 改變「我的最愛 pop 選單」的排列,將內定的最愛:「最近?#125;啟的檔案」、
;;          DIR、#\NONAME、NONAME 等等的選項放到最上面,以增?#91;使用者自定的最愛。
;;          (?#93;為目前的「我的最愛 pop 選單」只能顯示出 26 個使用者自定的最愛。)
;;       ○ ?#91;大我的最愛管理視窗的高度,以一眼看出更多的最愛。
;;
;;    □ 2002.02.06 v0.3
;;
;;       ○ 新增內定的最愛:『檔案目錄列表』及『新增空白文件』。
;;
;;    □ 2002.01.30 v0.2
;;
;;       ○ 新增「我的最愛 pop 選單」,按 Ctrl 兩下可叫出。
;;
;;    □ 2002.01.26 v0.1
;;
;;       ○ 使用 INI 、自定工具列的方式完成初版「我的最愛」。
;;       ○ 雖然舊版就可以支援 INI 讀寫,但本版使用 [resetdialog] 對於
;;          V7.06(含以下) 的版本,可能會發生當機,建議升級到 V7.07 再使用。
;;
;;======================================
;; 2002.02.28(c)v0.41 by 李棟樑<dllee@edirect168.com> http://dllee.ktop.com.tw
;;======================================

;;---------------------------------------------
;; 整體變數
%@strMyFavoritesINI="%ExePath\MyFavorites.ini" ;; 內定放在 [漢書安裝目錄]\MyFavorites.ini 檔案下
%@strMyFavoritesTMP="%ExePath\MyFavorites.tmp" ;; 內定放在 [漢書安裝目錄]\MyFavorites.tmp 檔案下
%@strMyFavoritesPOP="%ExePath\MyFavorites.pop" ;; 內定放在 [漢書安裝目錄]\MyFavorites.pop 檔案下
%@currentFavoritesCount=0

;;---------------------------------------------
;; 定義自定工具列5
;; ?j 或 Ctrl-5   管理我的最愛
set userhint5  管理我的最愛
def icon5=[myfavorites]

;;---------------------------------------------
;; C-Fx 功能按鈕  重新定義 c-fx ,將原來沒有用到的 Ctrl-Alt-F5 定義成 icon5
;;
def c-f5=[if !%KeyAlt]'%@cf5'[else][key icon5][end]

;;---------------------------------------------
;; Ctrl  快按兩下 重新定義 ctrl-2 ,將原來沒有用到的 ctrl-2 定義成 叫出我的最愛 pop 選單
;;
def ctrl-2=
   [exist %@strMyFavoritesPOP]
   [if %Exist] [popupmenu %@strMyFavoritesPOP]
   [else]
      [exist %@strMyFavoritesINI]
      [if %Exist]
         [createmfpop]
         [popupmenu %@strMyFavoritesPOP]
      [end]
   [end]
   
;;---------------------------------------------
;; 滑鼠中鍵 快按兩下 重新定義 mouse-m2 ,將原來沒有用到的 mouse-m2 定義成 叫出我的最愛 pop 選單
;;
def mouse-m2=
   [exist %@strMyFavoritesPOP]
   [if %Exist] [popupmenu %@strMyFavoritesPOP]
   [else]
      [exist %@strMyFavoritesINI]
      [if %Exist]
         [createmfpop]
         [popupmenu %@strMyFavoritesPOP]
      [end]
   [end]

;;---------------------------------------------
;; 定義自定工具列6
;; ?k 或 Ctrl-6   ?#91;入我的最愛
;; set userhint6  ?#91;入我的最愛
;; def icon6=[mf_addItemDialog]

;;---------------------------------------------
;; C-Fx 功能按鈕  重新定義 c-fx ,將原來沒有用到的 Ctrl-Alt-F6 定義成 icon6
;;
;; def c-f6=[if !%KeyAlt]'%@cf6'[else][key icon6][end]


;;---------------------------------------------
;; 自動執行
;;
;; ★ 要將 「D顯示」→「F進入漢書立刻 DIR」 的選項取消,在此的自動執行才會有效。
;;
def autoexec=
      [mf_initialize]
      [if %File == "NONAME"]                 ;; 若沒有指定檔名
;;    [demo step]
         [%oldNoname=%FileName]
         [mf_loadFileName]
         [if %@currentFavoritesCount > 1 ]
            [myfavorites]                    ;; 叫出「我的最愛」
         [end]
         [if %FileNo > 1]                    ;; 目前載入檔案的個數 大於 1 表示有從我的最愛選檔
            [q %oldNoname]                   ;; 關閉最初的那個 NONAME
         [end]
;;                                           ;; 在 0.3 版中?#91;入新增空白文件的功能
;;       [if %File == "NONAME"][dir][end]    ;; 如果還沒有我的最愛,則秀 dir
;;       [q NONAME]                          ;; 關閉沒有用的 NONAME
      [end]
      [if %File != ".DIR"];; && %File != "NONAME"]
      [cd %FilePath][end];; 改變目錄至目前?#125;啟的檔案
;;    [demo end]


;;---------------------------------------------
;; 我的最愛初始化  在第一次使用時,會自動產生內定的最愛(dir,#\NONAME,NONAME)。
;;
def mf_initialize=
   [exist %@strMyFavoritesINI]
   [if !%Exist]
      [writeini %@strMyFavoritesINI, MyFavorites, 檔案目錄列表, .DIR]
      [writeini %@strMyFavoritesINI, MyFavorites, 最近?#125;啟的檔案, .RECENT] ;; [recent file]
      [writeini %@strMyFavoritesINI, MyFavorites, 新增空白文件(我的文件夾), "#\NONAME"]
      [writeini %@strMyFavoritesINI, MyFavorites, 新增空白文件(目前工作目錄), "NONAME"]
      [createmfpop]
   [end]
   [exist %@strMyFavoritesPOP]
   [if !%Exist]
      [createmfpop]
   [end]

;;---------------------------------------------
;; 載入我的最愛列表   讀取我的最愛 INI 只取出檔案別名列表另存一暫存檔?#93;?#93; ListBox 只能讀檔)
;;
def mf_loadFileName=
   [set position 9]
      [e %@strMyFavoritesINI]
      [%@currentFavoritesCount=%Lines]
      [if %@currentFavoritesCount <= 1]
         [q %@strMyFavoritesINI]
         [position 9]
         [enddef]
      [end]
      [n .MyFavorites]
      [top] [delete line]     ;; 刪除第一行 [MyFavorites]
      [begin line]            ;; 到行首
      [repeat %Lines]         ;; 有幾行作幾次
         [l/=/]               ;; 找等號
         [erase end line]     ;; 刪除等號之後的字串
      [end]
      [file %@strMyFavoritesTMP]
   [position 9]

;;---------------------------------------------
;; ?#125;啟我的最愛檔案   讀取我的最愛 INI 取得我的最愛的原始檔名,並?#125;啟它。
;;
def mf_openItem=
   [getini %@strMyFavoritesINI, MyFavorites, %1]   ;; 讀出檔名
   [e "%String"]                                   ;; ?#125;啟檔案 ?#91;上 " " 可以讀空白長檔名

;;---------------------------------------------
;; 刪除某一我的最愛   在我的最愛 INI 中找到要刪除的那一項,將它刪除。
;;
def mf_deleteItem=
   [set position 9]
      [%strItem="%1="]
      [e %@strMyFavoritesINI]
      [top]
      [begin line]               ;; 到行首
         [l/^^%strItem/E]        ;; 找要刪除的 Key
         [if %Found]
            [delete line]        ;; 刪除 Key 那一行
         [end]
      [file]
   [position 9]
   [createmfpop]

;;---------------------------------------------
;; ?#91;入我的最愛   ?#125;啟一對話視窗,輸入檔案別名,再按 [?#91;入] 即可。
;;
def mf_addItemDialog=
      [%strTitle="請輸入『我的最愛』檔案別名           "] ;; 在我的電腦,如果沒有後置空白
      [%strPath ="%FilePath       "]                      ;; 字串不會完全顯示 <HE_BUG>
      [%strFile ="%File        "]                         ;; 應該是在計算字串寬度時有誤!
                                                          ;; 字串如果太長,在 ltext 時會當!!
      [strlen %strFile]                                   ;; 如果字串大於 40 ,則只取 40 個字
      [if %Len >40] [strleft %strFile 40] [%strFile=%String] [end]
      [strlen %strPath]                                   ;; 如果字串大於 40 ,則只取 40 個字
      [if %Len >40] [strright %strPath 40] [%strPath=%String] [end]
      [resetdialog ?#91;入我的最愛]
      [dialogbox ?#91;入我的最愛, -1,-1, 200,108]
          [dialogfont 細明體,16,16]
          [ltext %strTitle, 36,  8]
          [edittext %FileName, 1, 16, 28, 168, 16]
          [ltext %strPath, 16, 52]
          [ltext %strFile, 16, 66]
          [defpushbutton ?#91;入(&A), 1, 46, 86, 48, 16]   ;; Windows中預?#93; 1 為 OK
          [pushbutton    取消(&C), 2,106, 86, 48, 16]   ;; Windows中預?#93; 2 為 CANCEL
      [enddialog]
      [if %PushButton==1]        ;; ?#91;入(&A)
         [strlen %EditText1]
         [if %Len > 0]
            [writeini %@strMyFavoritesINI, MyFavorites, %EditText1, %FullName]
         [end]
      [else]                     ;; 取消(&C)
         [message]
      [end]
      [createmfpop]

;;---------------------------------------------
;; 管理我的最愛   ?#125;啟一對話視窗,提供管理/使用我的最愛的所有功能。
;;
def myfavorites=
   [mf_loadFileName]
   [if %@currentFavoritesCount <= 1 ]
      [mf_addItemDialog]         ;; 如果目前 INI 是空的,則「增?#91;目前檔案」
   [else]
      [resetdialog 我的最愛(在檔名上點兩下可以直接?#125;啟)]
      [dialogbox 我的最愛(在檔名上點兩下可以直接?#125;啟), -1,-1, 256, 200]
          [listbox %@strMyFavoritesTMP,    1,   4,   4, 248, 178, H]
          [dialogfont 細明體,12,12]
          [defpushbutton 編輯(&E),         1,  76, 186,  32,  10] ;; Windows中預?#93; 1 為 OK
          [pushbutton    取消(&C),         2, 116, 186,  32,  10] ;; Windows中預?#93; 2 為 CANCEL
          [pushbutton    增?#91;目前檔案(&A), 3, 156, 186,  62,  10]
          [pushbutton    移除選擇檔案(&D), 4,   6, 186,  62,  10]
      [enddialog]
      [if %PushButton==1]        ;; 編輯(&E)
;;       [mf_openItem %ListBox]  ;; ★ 傳參數有時會發生錯誤?#93;可能有空白或特殊字元時!)
         [getini %@strMyFavoritesINI, MyFavorites, %ListBox]   ;; 讀出檔名
         [if %String == ".DIR"]           ;; 看看這個最愛是不是 .DIR
            [myfdir]                      ;; 如果是 執行 [myfdir]
         [elseif %String == ".RECENT"]    ;; 看看這個最愛是不是 .RECENT
            [recent file]                 ;; 如果是 執行 [recent file]
         [elseif %String == "#\NONAME"]   ;; 看看這個最愛是不是 #\NONAME
            [e "#\NONAME"]          ;; 如果是 執行 [cd #][e #\NONAME]
         [else]
            [e "%String"]                 ;; ?#125;啟檔案 ?#91;上 " " 可以讀空白長檔名
         [end]
      [elseif %PushButton==3]    ;; 增?#91;目前檔案(&A)
         [mf_addItemDialog]
      [elseif %PushButton==4]    ;; 移除選擇檔案(&D)
         [mf_deleteItem %ListBox]
         [myfavorites]           ;; 再叫用自己一次,以便再刪除或?#125;啟其他檔案
      [else]                     ;; 取消(&C)
         [message]
      [end]
   [end]


;;---------------------------------------------
;; 在選到 .DIR 的最愛時的處理方式,是先判斷是否已 DIR 過,如果有,則?#125;啟舊的 DIR 資料。
;; 如果沒有,則執行 [dir] 查看工作目錄。
;;
def myfdir= [exist ".DIR"]
            [if %InMemory] [e ".DIR"]     ;; 若已 DIR 則?#125;啟 .DIR
            [else] [dir] [end]            ;; 若尚未 DIR 則執行 [dir]

;;---------------------------------------------
;; 建立 myfavorites.pop    動態建立 pop 選單檔
;;
;;1,?#91;入我的最愛            ,[mf_addItemDialog]
;;2,管理我的最愛  (Ctrl-5)    ,[myfavorites]
;;3,最近?#125;啟的檔案(Ctrl-Enter),[recent file]
;;4,檔案目錄列表              ,[myfdir]
;;5,新增空白文件(我的文件夾)  ,[e #\NONAME]
;;6,新增空白文件(目前工作目錄),[e NONAME]
;;7,取消          (Esc)       ,[null]
;;.
;;A,我的最愛, [e C:\HE7\我的最愛.txt]
def createmfpop=
   [%itemvar[0 ]="A"] [%itemvar[1 ]="B"] [%itemvar[2 ]="C"] [%itemvar[3 ]="D"] [%itemvar[4 ]="E"]
   [%itemvar[5 ]="F"] [%itemvar[6 ]="G"] [%itemvar[7 ]="H"] [%itemvar[8 ]="I"] [%itemvar[9 ]="J"]
   [%itemvar[10]="K"] [%itemvar[11]="L"] [%itemvar[12]="M"] [%itemvar[13]="N"] [%itemvar[14]="O"]
   [%itemvar[15]="P"] [%itemvar[16]="Q"] [%itemvar[17]="R"] [%itemvar[18]="S"] [%itemvar[19]="T"]
   [%itemvar[20]="U"] [%itemvar[21]="V"] [%itemvar[22]="W"] [%itemvar[23]="X"] [%itemvar[24]="Y"]
   [%itemvar[25]="Z"]
   [e %@strMyFavoritesINI]
   [n %@strMyFavoritesPOP]
   [top] [delete line]        ;; 刪除 [MyFavorites]
   [begin line] [split]
   [top] [begin line]         ;; ?#91;入預?#93;選項
   '1,?#91;入我的最愛            ,[mf_addItemDialog]'[split]
   '2,管理我的最愛  (Ctrl-5)    ,[myfavorites]'[split]
   '3,最近?#125;啟的檔案(Ctrl-Enter),[recent file]'[split]
   '4,檔案目錄列表(dir)         ,[myfdir]'[split]
   '5,新增空白文件(我的文件夾)  ,[cd #][e NONAME]'[split]
;; '5,新增空白文件(我的文件夾)  ,[e "#\NONAME"]'[split]
   '6,新增空白文件(目前工作目錄),[e NONAME]'[split]
   '7,取消        (Esc)         ,[null]'[split]
   '.'[down]
   [%ss="%"][%i=0]
   [repeat *]                             ;; ?#91;入最前面的 26 個最愛
      [replace mode][begin line][l/=/]
      [if !%Found] [break] [end]          ;; 如果找不到 = 表示結束 
      ','                                 ;; 將 = 改成 ,
      [%c=%Column][%flag_dir=0][%flag_recent=0]
      [%flag_noname=0]
      [push mark]
         [mark eol]
         [if %MarkText==".DIR"]           ;; 找看看這個最愛是不是 .DIR
            [delete line][continue]
         [elseif %MarkText==".RECENT"]    ;; 找看看這個最愛是不是 .RECENT
            [delete line][continue]
         [elseif %MarkText=="#\NONAME"]   ;; 找看看這個最愛是不是 #\NONAME
            [delete line][continue]
         [elseif %MarkText=="NONAME"]     ;; 找看看這個最愛是不是 NONAME
            [delete line][continue]       ;; 以上都是內定的最愛,已放入內定選單
         [end]                            ;; 所以,如果找到,則刪除以免重覆
      [pop mark]
      [column %c]
      [insert mode]
      '[e '[end line]']'
      [begin line]'%itemvar[%i],'
      [if %Line == %Lines] [break] [end]  ;; 如果處理到最後一行,表示結束
      [down][%i=%i+1]
      [if %i>=26] [break] [end]           ;; 如果已大於 26 個則結束
   [end]
   [if %Line != %Lines]       ;; 我的最愛大於 26 個!
      [push mark]             ;; 將多的刪除!
      [mark line][bottom][mark line][delete mark]
      [pop mark]
   [end]
   [file]
沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
主題已鎖定