• 17

鬧鐘程式

這次又寫了一個鬧鐘程式.
鬧鐘程式

雖然畫面不怎麼樣, 不過, 本來就是要可以客製化的.
這個 Skin 採用 XML 來表示.
主畫面是 Style.xml ,
鬧鐘畫面是 AlarmStyle.xml
(可以每個鬧鐘不同, 但是鬧鐘的 UI 寫得太累, 想改的用 pc 改就好了)
有空我再跟大家介紹 xml 的內容.
先讓大家用用看囉....

(因為我去下載 pTravelAlarm 來用後, 覺得好兩光歐...所以...)

對了, 音樂方面因為用了 fmod, 所以目前支援 mp3, wav, ocg 等.
但是 mid 好像不行...等下版看能不能解決這個問題.

目前版本 : SPAlarm ver 1.4 cab 檔 (有安裝舊版的, 請先把手機上舊版的移除): mobile01-2dd5375206f9cfa3e4e1b49070ce8240.zip
為了響應 Darren 大大的國際化, English Version SPAlarm 1.2 : mobile01-60325da6085fc1ba9f177a95305eb883.zip
2004-11-04 10:50 發佈
文章關鍵字 鬧鐘程式
剛剛看到就下載試了一下, 所有的介面應該都很方便自行修改!
但是有一個疑問, 在設定好鬧鐘之後, 如果把鬧鐘程式關閉, 設定的時間到了, 鬧鐘似乎無法啟動!?
islenny wrote:
剛剛看到就下載試了一下, 所有的介面應該都很方便自行修改!
但是有一個疑問, 在設定好鬧鐘之後, 如果把鬧鐘程式關閉, 設定的時間到了, 鬧鐘似乎無法啟動!?

是的... 但是我看 pTravelAlarm 好像也是這樣...
不過我想看看有沒有辦法解決這個問題...
目前就只能不要關掉它, 按 Home 鍵跳開就可以了...
當然要先感謝您無私分享自己的心血, 我也想玩玩在SP上開發一些工具, 可以方便看看您的Source ?

我一直都是使用pTravelAlarm, 因為沒找到更方便的工具, 關於鬧鐘啟動的問題, 雖然很多討論都說有問題, 我用pTravelAlarm一直都正常, 我現在用的是它官網上最後的版本, 應該有修正過吧! BTW, 我想pTravelAlarm應該有常駐的程式負責去啟動鬧鐘吧!? 在StartUp中有它的Lnk, 猜想關掉它的介面時, 並沒有關掉它的常駐.

一些小建議:
1. 時間設定時, 游標進入該欄位, 是否可以自動Mark?
2. 音樂搜尋路徑, 可否加入\Storage\Application Data\Sounds
3. 設定鬧鐘時, 存檔後, 名稱未同時修改

為了期待有善心人士提供美美的 UI.
我介紹一下程式的 style.xml



一開始是檔頭, 不需要更改
<?xml version="1.0" encoding="UTF-8"?><style>

這個表示程式左上方會顯示的文字:
<form caption="鬧鐘" />

下面這段是介面的翻譯, 如果有其它語言的需求, 可以改這裡, 也可以改成你想要的字

<translation menu="功能表" exit="離開"
test="測試鬧鐘" edit="編輯鬧鐘" timezone="切換時區" about="關於" done="完成" />

這是背景圖片, 可以是 bmp, jpg, 也可以指定其它目錄的檔案,
如 \Storage Card\Mypic.jpg 之類的
<bkg file="bkg.jpg" />


接著介紹文字區塊, 數量不限制, 第一種是 timestr
後面有 format (後述), x , y 代表出現的位置 (左上角是 0,0), font 代表字型與大小, 用逗號隔開, color 代表顏色, 以 R,G,B 表示
<timestr format="yyyy年MM月dd日" x="10" y="10" font="arial,18" color="255,0,0" />
<timestr format="hh:mm: ss" x="10" y="50" font="arial,24" color="255,0,0" />
<timestr format="dddd tt" x="10" y="100" font="arial,12" color="255,0,0" />

format 內接受的參數如下(大小寫有差別歐).
<!-- 表格開始 -->
d 將日期顯示成數字,且不需要前置零 (例如,1)。
dd 將日期顯示成數字,並且加上前置零 (例如,01)。
ddd 用縮寫來顯示星期幾 (例如,Sun)。
dddd 用完整名稱來顯示星期幾 (例如,星期日)。
M 將月份顯示成數字,且不需要前置零 (例如,以 1 表示一月)。
MM 將月份顯示成數字,並且加上前置零 (例如,01/12/01)。
MMM 用縮寫來顯示月份 (例如,Jan)。
MMMM 用完整名稱來顯示月份 (例如,一月)。
h 使用 12 小時制將小時顯示成數字,且不需要前置零 (例如,1:15:15 PM)。
hh 使用 12 小時制將小時顯示成數字,並且加上前置零 (例如,01:15:15 PM)。
H 使用 24 小時制將小時顯示成數字,且不需要前置零 (例如:1:15:15)。
HH 使用 24 小時制將小時顯示成數字,並且加上前置零 (例如:01:15:15)。
m 將分鐘顯示成數字,且不需要前置零 (例如,12:1:15)。
mm 將分鐘顯示成數字,並且加上前置零 (例如,12:01:15)。
s 將秒數顯示成數字,且不需要前置零 (例如,12:15:5)。
ss 將秒數顯示成數字,並且加上前置零 (例如,12:15:05)。
T 使用 12 小時制,並且在正午之前的任何小時加上顯示大寫 A;在正午與 11:59 P.M 之前的任何小時加上顯示大寫 P。
tt 使用 12 小時制,並且在正午之前的任何小時加上顯示上午;在正午與 11:59 P.M 之前的任何小時加上顯示下午。
y 顯示年份數字 (0-9),且不需要前置零。
yy 將年份顯示成兩位數的數值格式,並且加上前置零 (如果需要的話)。
yyyy 將年份顯示成四位數的數值格式。
<!-- 表格結束 -->
第二種是 alarmstr 格式跟 timestr 差不多, 只有 format 不一樣.
format 有 $name$ 代表該鬧鐘的名稱, $time$ 表示該鬧鐘下次要發生的時間, 時間格式在 timeformat 中, timeformat 的格式跟上面 timestr 的 format 一樣.
<alarmstr format="下一個鬧鐘: $name$" x="10" y="140" font="arial,12" color="255,0,0" />
<alarmstr format="將於$time$啟動" x="10" y="160" timeformat="MM月dd日tthh:mm" font="arial,9" color="255,0,0"/>

最後, 是結束.
</style>


呼, 寫完了, 下次再介紹 editalarm.xml, 裡面有設定可以更改鬧鐘的檔案目錄等.
這不給滿分會被雷打
真是厲害
加油,我也很想把pTravelAlarm換掉!
滿分滿分..
推一下嚕~一定給給分的~~ 把pTravelAlarm幹掉更美一點會更好喔!!!加油加油雖然我看不太懂那個程式的內容但還是推啦!!!
謝謝 回家在下在來測試看看
佩服你的能力
太配服您了..
原本打算買了 565 後,第一件事是來寫火車時刻表
後來逛到 01 看到您的大作.. 讚!就放棄了寫時刻表的打算

後來覺得 565 的鬧鐘很爛,又不想買,又打算自己寫..
現在又看到您的大作, 這樣太好了..

(之前找資料找了很久,好不容易找到 OPENNetCF & fmod)
還在想 UI 怎麼作, 要有那些功能 :p
With the best regards, Skyer
接著發表 editalarm.xml 的內容
主要處理當你用手機編輯鬧鐘時的介面
(當然, 也可以直接編輯鬧鐘, 因為鬧鐘也是 XML 的啦, 檔案是 alarm.xml)
首先, 也是檔頭, 不需更改.
<?xml version="1.0" encoding="UTF-8"?>
<style>

接著, 是介面的上方抬頭與文字翻譯, 應當很容易了解 :
<form caption="編輯鬧鐘" />
<translation done="存檔"
menu="功能表"
add="新增鬧鐘"
del="刪除鬧鐘"
refresh="更新可選檔案"
cancel="取消"

name="名稱:"
enable="啟用"
hour="時:"
min="分:"
allday="全週"
monday="星期一"
tuesday="星期二"
wendesday="星期三"
thursday="星期四"
friday="星期五"
saturday="星期六"
sunday="星期天"

action="動作:"
play="播放音樂"
exec="執行檔案"
file="檔案:"
vol="音量:"
snoop="懶人時間:"
/>


接著, filrdirs 指的是, 當你要選擇檔案時, 程式要去抓取的目錄.
可以用 path1 ~ path*** 只要不重複就可以, 因為重點是後面的目錄名稱.
檔案抓取時一律會找所有子目錄.
<filedirs
path1="\storage card\my documents\"
path2="\storage\my documents\"
path3="\storage\windows\start menu\"
path4="\storage\program files\spalarm\"
/>


最後, 是副檔名的參數,
play 指得是你選擇播放音樂時, 只列出上面 filedirs 中符合副檔名的檔案,
用 *.xxx 表示, 每個用分號隔開就可以.
exec 指得就是選擇執行檔案時, 只列出上面 filedirs 中符合副檔名的檔案,
格式跟 play 一樣.
<extension
play="*.mp3;*.ocg;*.wav;*.mid;*.ogg;*.wma"
exec="*.*"
/>


Okay, 下次在介紹 alarmstyle.xml 跟 alarm.xml, 還有 timezone.xml 歐
  • 17
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 17)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?