以前在寫 windows 程式的時候,常常會遇到要將一些畫面上的選項、設定值等儲存到 ini 檔案中,以便記住使用者相關的設定,下次使用時不用重複再設定。現在環境轉換到了 Android 有什麼不一樣嗎?

觀念跟需求其實是一樣的,只是 mobile 的作業系統不管是 iOS 或是 Android 檔案結構跟 Windows  不太相同,所以 ini 檔案要存放在哪裡,也就變成一個問題,按照一般的建議,iOS 的部分,應該要存放在 StartUp\Documents\ 目錄中,而 Android 則是 assets\ 目錄,細節跟原因有興趣的話,請自行參閱各作業系統的開發指南

現在就讓我們來實做看看,如果是用 Delphi XE5 該如何處理呢?

(1)首先還是先 New 一個 FireMonkey Mobile Application

(2)簡單置放一個 CheckBox、Edit 與 Button 如下

(3)比較新的 Delphi 版本,在 I/O 這個部分為了跨平台已經提供了新的 Unit(System.IOUtils),雖然舊的 Unit 仍有保留,但是如果要寫 mobile 的程式,則建議改用新的。先在 uses 的部分調整增加如下

(4)然後在 FormCreate 的時候,先用全域變數決定 ini 的檔案名稱,通常 ini 檔案名稱會利用 Application.ExeName 來命名,只是副檔名不同,不過 Application.ExeName 在 mobile 的世界並不能使用,必須改用 ParamStr(0) 來替代,另外由於之前提到不同的 mobile 作業系統要求的路徑也不相同,為了能跨平台透通,其實  Delphi 已經很貼心的幫我們準備好了函式,只需要照用就好,方式如下

其中 TPath 是一個在 System.IOUtils 中的 record type,而 GetDocumentsPath 則是 class function,所以可以直接呼叫使用,PathDelim 則是代表斜線或反斜線,會由 Delphi Compiler 依據所選擇的 Platform 來自動決定,很方便吧...一行就搞定,包含跨平台的部分都不用傷腦筋

(5)接下來就是在 FormCreate 加入 ReadIni 與 Button.Click 加入 WriteIni,這部分由於跟在 Windows 環境一模一樣,所以就只列出 code 不多做解釋嚕

(6)LocalDB 不管是要使用 SQLite 或是 IBLite 也是一樣,如果發佈的時候要隨附資料庫,則需要指定資料庫置放的位置,平常設定連線的檔案路徑,也要依據上述的作法來設定,細節可以參考原廠的說明,不過是英文的啦...

http://docwiki.embarcadero.com/RADStudio/XE5/en/Mobile_Tutorial%3a_Using_FireDAC_in_Mobile_Applications_%28iOS_and_Android%29

 

完成!也就是 Gordon  大師常掛在嘴上的「比賽結束!」

to be continued...

    縹緲 發表在 痞客邦 留言(2) 人氣()