Delphi XE5 在 Windows跟Mobile(Android/iOS)字串處理方式不同

在Delphi XE5中開發移動裝置(Android/iOS)有不同的編譯器

iOS模擬器:DCCIOS32.EXE
iOS實 機:DCCIOSARM.EXE
A
ndroid  :DCCAARM.EXE

所以在開發時,有些資料型態是必需改寫的:

WideString, AnsiString, ShortString, AnsiChar, PAnsiChar, PWideChar, Openstring

而下面的表格有教您如何做對應處理。

Migrating Delphi Code to Mobile from Desktop

接下來的是0-based跟1-based,以前的程式都是從1開始,在mobile complier上則是從0開始(文件上說以後可能會變成標準)。

Migrating Delphi Code to Mobile from Desktop - RAD Studio

官方建議是使用StringHelper、或StringBuilder來處理(例如Pos改成Indexof….)

Migrating Delphi Code to Mobile from Desktop1 - RAD Studio

參考資料

Migrating Delphi Code to Mobile from Desktop

 

Day3 – Delphi XE5簡易手電筒

在經過前二天的安裝以及設定之後,今天來教大家寫一個最簡單的app-手電筒。十分鐘就可以完成了唷 🙂

螢幕快照 2013-10-10 下午8.43.051新增空白專案

螢幕快照 2013-10-10 下午8.56.04

2接著我們要在畫面上放上二個元件,在右下角的元件盤中搜尋打上tswitch,這是一個開關的元件。直接在TSwitch快點二下

螢幕快照 2013-10-10 下午8.56.28

3第二個元件是TCameraComponent,從名稱就知道跟相機有關的,沒錯,因為手電筒就是打開相機的閃光燈。一樣也是搜尋到之後快點二下即可。

螢幕快照 2013-10-10 下午9.16.09

4二個元件放上去的畫面

螢幕快照 2013-10-10 下午8.56.45

5接下來點選畫面上的CameraComponent1元件,然後左下角的Active打勾成為 True

螢幕快照 2013-10-10 下午8.57.05

6接下來點選畫面上的Switch元件,然後將左下角的屬性視窗點Events頁籤,往下找到OnSwitch快點右邊空白處二下

螢幕快照 2013-10-10 下午8.59.57

7在裡面輸入以下的程式

[pascal]
if Switch1.IsChecked then begin
if CameraComponent1.HasFlash then
CameraComponent1.TorchMode := TTorchMode.tmModeOn;
end else begin
if CameraComponent1.HasFlash then
CameraComponent1.TorchMode := TTorchMode.tmModeOff;
end;
[/pascal]

稍微講解一下,如果Switch是打開的(Switch1.IsChecked),檢查相機是不是有閃光燈(CameraComponent1.HasFlash),確定有的話,就將相機的TorchMode(燈光)打開(tmModeOn),相反的就是關掉(tmModeOff)。

打完收功!按下F9之後,就是您的第一個APP程式叫「手電筒」XD

範例程式碼下載: https://github.com/superlevin/delphixe5flashlight

實機操作畫面: