Delphi XE LiveBindings連結MySQL中文亂碼問題

 

 

 

一直都嘗試用原來的寫法,沒試過LiveBindings的功能,昨天看到 CodeRage8的介紹後,今天嘗試一下,結果剛好遇到MySQL中文亂碼問題,一起分享。

Data Explorer

DataExplorer01

1打開Data Explorer,在MySQL按右鍵 >> Add New ConnectionDataExplorer02

2新增名字DataExplorer03

3輸入連線資訊

HostName >> 主機名稱

Database >> 資料庫名稱

User Name >> 帳號
Password >> 密碼

接著可以打開 Advanced看看裡面有什麼

DataExplorer04 DataExplorer05

4按OK完成

 

LiveBindings

liveBindings01

1從上面的功能表點選 View -> LiveBindings Designer打開 LiveBindings DesignerliveBindings02

2會看到下面多了一塊 LiveBindings Designer的畫面,接著按左下角的LiveBindings Wizard

liveBindings03

3可以選擇Binding的方式,我們選第二個 Link a grid with a data source

liveBindings04

4選擇TGrid

liveBindings05

5選DBX(DBExpress)

liveBindings06

6選擇 Driver: MySQL;Connection Name:POS(剛才Data Explorer建立的);Command Type: ctTable(連接Table);Command Text:下拉要連結的Table

liveBindings07

7勾選 Add Data Source navigator,新增一個navigatorliveBindings08

8完成後就會發現 LiveBinding都做好了XD 稍徵排版一下liveBindings09

9發現裡面的中文變成????怎麼辦?

liveBindings10

10點選 TSQLConnection,在Driver裡面有一個 ServerCharSet設成big5,接著把上面的Connected勾掉再勾回去(重新連線)

liveBindings11

11再回到TBindSourceDBX,一樣在Active的地方勾掉再勾回去重新連線

liveBindings1212亂碼的地方回復成中文了!

 

Delphi XE5 30天學習暫停五天

晚安!突然有網友來信問了怎麼停頓沒教了呢?其實不是沒有教啦~只是最近在忙著手上的專案。剛好手上在從事 餐飲業的POS系統開發以及 Codeigniter 結合 bootstrap3的案子,這正好又可以寫一些文章分享了!

請大家耐心等候囉!

Day4 – Delphi XE5 簡易BMI計算器

今天教大家設計BMI計算機,螢幕快照 2013-10-12 下午12.30.53

1首先開啟一個空白專案

螢幕快照 2013-10-12 下午12.31.17

2新增一個ListBox

螢幕快照 2013-10-12 下午12.31.31

3將aligh 設為 alClient(填滿)

螢幕快照 2013-10-12 下午12.31.53

4將GroupingKind 設成 gsGrouped

螢幕快照 2013-10-12 下午12.32.17

5將StyleLookup 設定 transparentlistboxstyle

itemeditor

6在畫面上按右鍵開啟 Items Editor

itemsdesigner1

7下拉TListBoxGroupHeader後按Add Item

itemsdesigner2

8接著下拉 TListBoxItem 後按 Add Item

螢幕快照 2013-10-12 下午12.33.24

9新增如上圖

螢幕快照 2013-10-12 下午12.34.04

10點上面的LiboxGroupHeader1修改Text 為 BMI計算機,TextAligh設為 taCenter(置中)螢幕快照 2013-10-12 下午12.34.48

11陸續修改其他如上圖

螢幕快照 2013-10-12 下午12.35.16

12新增TEdit元件

螢幕快照 2013-10-12 下午12.35.34

13修改屬性Aligh 為 alRight

螢幕快照 2013-10-12 下午12.36.23

14將KeyboardType改成 vktNumberPad (預設開啟數字鍵盤)

螢幕快照 2013-10-12 下午12.36.50

15新增一個Button

螢幕快照 2013-10-12 下午12.37.06

16將Aligh 設為 alClient

螢幕快照 2013-10-12 下午12.37.24

17 Text設為計算

螢幕快照 2013-10-12 下午12.37.44

18新增Label

螢幕快照 2013-10-12 下午12.38.17

19設定完畫面如圖

螢幕快照 2013-10-12 下午12.38.35

20將edit1.text,edit2.text的TextAligh屬性設為 taTrailing (置右)

螢幕快照 2013-10-12 下午12.39.34

21都設定完之後,可以下拉成不同機器

螢幕快照 2013-10-12 下午12.39.03 螢幕快照 2013-10-12 下午12.39.16

22可以看得到在ios、android會自動轉換成各自的風格

sourcecode

23接著在畫面的計算按鈕點二下,輸入上圖的程式

[pascal]
procedure TForm1.Button1Click(Sender: TObject);
var
BMI:double;
begin
BMI := StrToFloat(FormatFloat(‘#.##’,(StrToFloat(Edit2.text) /
( (StrToFloat(Edit1.Text)/ 100) * (StrToFloat(Edit1.Text)/100 )))));
Label1.Text := FloatToStr(BMI);
end;
[/pascal]

螢幕快照 2013-10-12 下午12.41.36

24 可以雙點不同的平台,看看跑出來的效果

螢幕快照 2013-10-12 下午12.42.16

25 Windows

螢幕快照 2013-10-12 下午12.47.44

螢幕快照 2013-10-12 下午12.48.00

26 iPhone

1386014_10151624432496541_1740355845_n 1382787_10151624432376541_1638450671_n

27  Android

Github 程式下載 https://github.com/superlevin/delphixe5bmicalc

 

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

 

Day2 – Delphi XE5 開發Android、Mac/iOS設定

Android設定

螢幕快照 2013-10-09 下午4.27.29

1開始功能表→Embarcadero RAD Studio XE5→Android Tools

螢幕快照 2013-10-09 下午4.52.09

2開啟之後,其實就是Android SDK Manager的畫面

螢幕快照 2013-10-09 下午4.53.16

3點選上面功能表Tools→Manage AVDs就可以看到delphi xe5在安裝時會自動新增一個rsxe5_android模擬器

螢幕快照 2013-10-09 下午4.37.15

4如果您已安裝好自己android手機的usb驅動程式,可以進入命令字元模式(執行→cmd),然後輸入 adb devices,如果正確的話就會列出您的手機。

Mac/iOS設定

螢幕快照 2013-10-09 下午5.03.04

1到apple網站下載xcode並安裝(網址 https://developer.apple.com/xcode/)

螢幕快照 2013-10-09 下午5.03.35

螢幕快照 2013-10-09 下午5.03.21

2安裝完成後,打開xcode,進入選單Preferences中安裝Command line tools

螢幕快照 2013-10-09 下午5.06.27

3將C:\Program Files\Embarcadero\RAD Studio\12.0\PAServer中的RADPAServerXE5.pkg複製到mac上安裝,完成後就會出現RAD PAServer XE5

測試設定是否成功

Android APP開發

螢幕快照 2013-10-09 下午5.09.49

1打開 delphi XE5主程式,點選 File -> New -> FireMoneky Mobile Application – Delphi 新增專案

螢幕快照 2013-10-09 下午5.10.08

2選擇blank application(空白專案)

螢幕快照 2013-10-09 下午5.13.16

3自動建立一個手機app的空白專案

螢幕快照 2013-10-09 下午5.13.32

4預設是執行到android上(粗體),其他也可以直接執行在iOS的實機或模擬器上

螢幕快照 2013-10-09 下午5.16.56

螢幕快照 2013-10-09 下午5.19.57

5從右下角的Tool Palette(工具盤),點一下TButton,再回到手機畫面的空白處拖拉出您要的大小

螢幕快照 2013-10-09 下午5.21.16

螢幕快照 2013-10-09 下午5.23.20

6再到左下角的Object Inspector(物件檢視器),下拉到Text的部份,把Button1改成Hello World

螢幕快照 2013-10-09 下午5.29.17

7點開右邊的project1,把android下面target的部份設定成PC36100(壽山的HTC手機),接著點選功能表的RUN→RUN(或直接按F9)

1391869_10151619643916541_923988776_n

8實機拍攝的狀況

iOS APP開發

延續上面的1~6的步驟。

螢幕快照 2013-10-09 下午5.44.38

螢幕快照 2013-10-09 下午5.45.15

0在mac機器上打開paserver,並輸入密碼(一定要輸入),並取得該主機的ip(可以打開終端機輸入ifconfig)

未命名1

未命名

未命名2

1在ios simlulator點二下變粗體後,按右鍵Properties在profile的地方下拉,按add new

螢幕快照 2013-10-09 下午5.42.29

2輸入設定檔名稱按下一步(next)

螢幕快照 2013-10-09 下午5.42.52

螢幕快照 2013-10-09 下午5.45.48

3輸入執行paserver的主機ip以及密碼,沒問題的話按test connection會出現成功訊息

螢幕快照 2013-10-09 下午5.46.00

4設定好後按finish,接著點ok,就可以按f9執行了

螢幕快照 2013-10-09 下午6.00.39

5模擬器執行畫面如上,恭禧您!已經學會iOS跟Android APP設計的第一步了。

 

系列文章

Delphi XE5學習中文書

有網友反應看到DELPHI XE5高效率的Android iOS APP開發功能很想學,但一直找不到中文的書籍~對不少英文能力不是很強的人,即使看到這套很神奇的工具,沒有中文參考書的情況下只好卻步。

其實台灣的捷康科技有出版幾本書籍,大家可以參考,不過因為沒有在書局舖貨的情況下,大家都不曉得。分享給大家!

購書網址: http://embarcadero.qcomgroup.com.tw/publish_books.html

delphi xe5 移動開發入門手冊

XE5

delphi xe4 firemonkey、datasnap

Delphi XE5 Android設定應用程式權限(uses-permissions)

在Android開發時,如果要設定應用程式權限(例如使用相機Camera),需要到AndroidManifest.xml去設定。不過在Delphi XE5就簡單多了,在 Project -> Options可以看到Uses permissions

基本上最常會用到的大概是(定位、網路、相機、電話),只要勾選就可以囉!

  • Access coarse location
  • Access fine location
  • Call phone
  • Camera
  • Internet
  • Read calendar
  • Read external storage
  • Write calendar
  • Write external storage
  • Read phone state

6 2 3 4 5

參考連結:

Delphi XE5 DocWiki – Uses Permissions

終於讓手上的HTC EVO 4G可以跑Delphi XE5開發的Android程式了!

DelphiXE5AndroidVersion

在上次參加iOS Dev Club開發聚一直飲恨的地方是沒辦法Demo Android版本的程式出來,因為手中的Android手機是版本2.1的HTC EVO 4G,在Embarcadero的官方網站中有提到Target Android Versions要在2.3.3之後才行(大哭….)。今天終於心一橫跑到了大陸有名的網站 ROM之家 找到 HTC EVO 4G的ROM然後刷機了!

果然刷完機之後,就可以跑昨天寫的這篇。 然後大家可以看到一點是,在沒有更改程式的情況下,Delphi XE5把元件的風格轉成Android的風格了。

Delphi XE5 for Android 影片位置 : http://youtu.be/eiV8uAl0vBY

Delphi XE5 正式發表-支援Android、iOS、Mac、Win的開發利器

其實壽山我自從Delphi 7之後,就很少follow Delphi的相關訊息。主要是後面的產品不是這麼的令人驚艷!

不過在FireMonkey這個框架出現後,就開始注意到Delphi這個開發工具的雄心壯志~毅然拋棄了多年且相當成熟的VCL,改投注在跨平台、跨裝置的FireMonkey上,就知道這開發工具準備大展身手了!

Click to see full-sized image

果然從XE2開始,FireMonkey就不斷進化~除了有64位元的程式外,也可以開發在Mac OS、iOS上面跑的程式…

到了XE4時,iOS開發已經相當純熟,也有不少軟體公司開始使用XE4開發app且成功上架~昨天XE5正式release 後,也看到Embarcadero依照著預定的roadmap,將delphi支援Android開發給呈現出來。

專案直接支援android、iOS Platforms

螢幕快照 2013-09-13 上午11.08.45

 

iOS、Android User Permissions直接以勾選方式

螢幕快照 2013-09-13 上午11.11.30

設計介面的外觀還可以讓您選是那個機器(或是螢幕大小)

螢幕快照 2013-09-13 上午11.08.58

雖然昨天台中場在李維大師的解說下,可以看得出仍有一些小小的bug在,不過整體而言可以看得出Delphi XE5已經很成功的開發出mobile的solution。

接下來有空的時間,也得好好摸索它,也希望有機會介紹給大家 :)