全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:10888
推到 Plurk!
推到 Facebook!

Android使用分享

 
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2014-02-11 01:41:05 IP:118.160.xxx.xxx 未訂閱
各位好! 新年快樂~~
趁著年初到這段時間比較有一點空閒, 好好坐下來研究FM2 Android 的開發, 過程千辛萬苦,
至少遍尋過好幾千的討論文, 實在是因為技術資源太少了, 大致上已有摸出一點自己的心得,
稱不上是設計的技術, 也不一定符合正確的觀念, 但能弄出東西來就好了, 在此也分享給各位
同時, 一些尚未解決的問題, 也一併在此提出, 看看各位有沒有能解
1. FM2 相當注重 ActionList 的功能, 我發現, 其實 ActionList 可以把它當成一個集合式的
procedure manager, 而且很多元件都支援 Action 的加載, 原先我不是很在意這個部份,
但後來我發現, 有很多功能, 如果不用 ActionList 定義及執行, 還真的無法展現手機應有
的效果, 要不就是沒反應, 要不就是效果出不來, 而 ActionList 用久了, 其實我認為還蠻
好用的, 由 ActionList 管理程式碼, 不用再像以前要自己找關聯, 其他button只要 call
對應的 AcionList 的 Categories 就可以!
ActionList 有分為兩大部份, No Category 及 預設的 Action,
預設的 Action 是 FM2 已經幫我們處理好的效果, 如啟動像機, 相簿...
No Category 則是我們自行定義, 這塊就是我把它拿來當做自己 procedure 的管理,
我把所有要做的事情定義在這裡(coding), 例如按鍵一 要開啟一個資料庫, 我就先創建New Action
把開啟功能的程式碼寫入execute 或 updated 中, 每一個動作一個Action對應,
其實跟以往大家習慣自己寫一段 function 或 procedure 一樣, 程式碼不會多也不會少,
但之後的管理及應用方便多了,大家不妨可以嘗試看看,
但 ActionList 似乎沒有 function 的功能, 我沒有辦法帶參數進去, 現在的做法都是
要定義變數來傳導
像我們常用 xxx.visible := True 或 False, 如果是寫在 on click事件, 在Andriod上
往往不會有反應, 但如果寫在ActionList中, 再由要操作按鍵指定對應的Action, 就可以
有作用等等...
Tab果想展現滑動效果, 一定要用 ActionList 中 Tab 的 Action, 例如以下的方式,
ChangTab_Slide_Left.Tab := TabCtrl_Main.Tabs[TabCtrl_Main.TabIndex 1]
這樣的滑動效果, 就可以搭配手勢, 向左, 向右把 ActionList 指定給其中的Action
大家傳統的寫法, 一定是在 TabConrol 中或設定兩個按鍵(左右), 然後在 on Click中寫
TabControl.TabActive:= xxx 或 TabControl.TabIndex:= 1(2,3...)
因為這樣寫, 是可以立即切換Tab, 但手機上不會有 Tab 左右滑動的效果
(這個embd有提供sample, 我研究好久才得到的結果)
2. ktop中有不少人都對 GetDocumentPath 有使用上的疑慮(包含我在內),
我後來使用的結果發現 , FM2 對 GetdocumentPath 進行任何存取, 建立是可以通行的,
但很奇怪的是, 創建在這裡的檔案, 手機都內都遍尋不到, 可是存取卻是通的, 這點目前
還找不到任何原因, 到底是手機權限的問題, 還是 FM2 無法真正完全掌控Android? 可是
在 GetTempPath 卻沒有這個問題! 這個問題還包含deploy 的一樣狀況!
3. 在 Android的世界裡支援SQLite 及 InterBase兩種資料庫, 對於InterBase來說, 依EMBD
官方文獻的說明, 在Deploy中指定 IBTOGO的DRVIER, 掛載數個需要註冊的檔案到分發表,
也都有特別調整好 REMOTE PATH 的設定, 但分發安裝後(當然如第2項說明, 找不到任何
被分發的檔案), 一執行程式就會顯示 InterBase is not regitry license 的錯誤, 無法
使用, 這是我無解的地方, 連使用官方提供的sample直接編譯, 也是一樣的狀況, 後只好
改用 SQLite, 則一切沒有這個問題, 但SQLite對我來說是
一個很陌生的資料庫系統, 能獲得的資源並不多, 還有待研究, 但看來要發展手機上的資
料庫, 目前 FireDAC SQLite可能是唯一的選擇,
而前一陣子我遭遇一個很可怕的經歷, 就是按技術資料開一個FM Mobile 專案, 使用SQLite FireDAC,
然後搭配DataSnap架構(因為要連pc端), 我就在專案上創建一個DataSanp Client 的
Client Moudle, 因為使用 SQLite, 一定要加入一個TFDPhysSQLiteDriverLink元件
才能讓SQLite順利被連結(不過我不知道為什麼要加入TFDGUIxWaitCursor, 因為沒有文件說明)
按以往我們的習慣, 會把相關資料庫的元件放在 DataMoudle 中, 所以我也相當習慣
就把這個Link放在Client Module 中, 但這時慘劇就發生了, 一編譯就出現82個error
不是程式碼有問題, 而是在 platform 中Link Android .. 找不到 xxx, 我傻眼了,, 怎麼搞
怎麼調都沒有用, 我一度納悶, 前一次還好好的, 怎麼突然發生這檔事, 我還以為
xe5掛了, 於是重新安裝XE5, 把程式重LOAD進來, 結果還是一樣, 我也一度PO到KTOP,
但沒有回應, 搞得我將近兩個禮拜, 雖然我想會不會是後來 Link的問題, 也嘗試把
元件移除, 仍宣告失敗, 只要把 Link 放在 ClientModule 中就一定死(大過年, 寫這個字不好)
要把 Link元件移除, 還要把 uses 的 相關Link 的 FMX... 也刪掉, 編譯就成功, 怪吧!
我猜應該是DataSnap有使用到一些Window的東西相沖吧!
但如果不加入Link, SQLite 就不能使用, 那怎麼辦呢?
終於讓我試出方法, 原來在原本專案創建一個 DataMoudle, 把 FireDAC 所有元件
都放在這裡就過了, 絕對不要放在 DataSanp Client Module 內, 甚至放在MainForm上也不行
但 DM 中也絕對不要放 DataSnap 的元件, 反正就是不要交叉使用就對了,
為了這個問題, 我付出整個兩週的壽命, 不知道值不值得!
這裡我得到一個答案, 如果要寫一支手機用的單機資料庫, 使用 FireDAC SQLite 就夠了
如果還要與PC連結資料庫, 加上 DataSnap 串接主機
4. 在撰寫途中, 不少要測試的情況, 通常大家可能期待模擬器, 但我勸各位不要期待了,
就算我使用SSD I7 第四代CPU 32G RAM, 要等模擬器跑一支程式, 一天下來可能只能編譯
最多十次, 更何況我在寫程式時, 一天少說400次的編譯看結果, 所以開發Android app
一定要準備一支實機, 畢竟Android手機不像Apple的高價, 3,4仟元就可以買到不錯效用
的手機了, 買手機最重要是要注意
1. 手機是否有提供電腦的同步連結驅動
2. 手機(或平板)的照像對焦功能好不好, 像我買一台Acer A3-A10 10.1"平板, 竟然利用
google BarCode Scan , 對一維條碼, 10組有10組掃不出來, 2維條碼 10組有7組掃不出來,
htc 單核, 一維10組有2組, 二維10組1組不出來, 紅米機10組均能快速掃瞄到
3. 要注意 Android 的版本不要太舊, 我有一支 "台灣牌" 的是 2.3.2 , 程式裝的上去,
但SQLite無法運作, 會出現 [FireDAC][Phys][SQLite] ERROR: database disk image
is malformed, 但其他 4.0.x 版系統就沒有問題, 我猜是 SQLite 不支援 2.3.x版
4. 開發中最麻煩的就是要讓xe5連上手機, 通常手機必須要有提供driver達成同步,
在xe5的 Project Manager中的Targer platform 中要出現該手機的型號, 這樣才能
點選Run時, 會自動把 apk 丟到手機並安裝啟動, 否則就要手動把 apk 裝到手機再
進行安裝測試, 這邊有兩個ap(pc端)可以讓pc與手機連接

App Tools 手機助手
http://www.freeappstools.com/ad/tw/gad/free-apps-tools.html
優點, 利用usb連接(或只要手機有提供pc Driver就可以, 不一定要同步系統)
只要手機可以接上pc(即pc端告知usb連接成功), 在pc端裝上控制軟件,
它就會自動連接手機, 並把手機畫面傳送到pc, 同時在xe5上選擇Run工作時,
可以同步到手機上並直接看結果, 還不錯用
另外, 有提供wifi的連接, 省掉usb線, 但我怎麼試, 驗證碼都通不過
除可以在pc端看到手機畫面上, 也可以截取畫面, 也可管理手機內存程式及
資料
缺點 但無法自動辨識直橫畫面, 所以手機橫看時, pc端仍然是直的, 而且手機畫面
切換, 無法自動更新, 要利用ReFlash 操作, 不是很方便
Mobizen
上 google play 搜尋這串字就可以下載到手機
優點: 利用 wifi 連接, 不用usb線, 可以傳送手機畫面到pc端, 不但可以截圖,
還可以錄影(並可將滑鼠軌跡一併錄下, 更有FreeHand功能, 可以塗鴉)
也可讀取手機內存, 更好用的是如pc般, 將windows檔案複製, 貼, 就可以
丟到手機(反向亦如是), 最強的是, 手機與pc同步動作(記住是動作哦!),
手機動, pc跟著動, 手機轉, pc跟著轉, 反過來, pc在畫面上滑動(用滑鼠)
手機也會同步動作, 幾乎可以是pc控制手機, 但pc端無法轉向
如果沒有wifi, 也可透過 usb 線, 但就必須pc端有支援手機driver才可以了
缺點: pc及手機都要分別下載軟體安裝, 第一次使用要註冊, 我猜應該是向該軟體
公司登錄, 有點類似TeamViewer的方式, 兩端都要連上軟體商主機才能互被
控制, 另外在xe5上無法偵測手機的存在, 所以按Run之後, 無法主動傳送檔
案到手機並自動運作, 所幸, 利用檔案總管把 apk 複製到手機很簡單, 可
以用run產生apk, 再手動丟到手機執行結果
另外, 連結控制有時會突鎚, 造成pc端手機狀況鎖死或手機會亂跳, 所以
千萬不要把pc端當成手機來玩, 很容易造成手機問題
另外, 市售有usb連接線可以使用, 凱捷 j5create Android手機連接電腦同步線-JUC600
效能應該比軟體要來的好, 不妨也可考慮!
5. 開發中丟到手機安裝測試, 目前我遭遇到一個很大的問題,
假如我有一個資料庫(sdb)會記錄app的一些設定參數, 第一次安裝執行, 也產生了sdb
並經使用者輸入了一些設定參數儲存, 這些都沒有問題,
但如果程式改過, 重新丟到手機重安裝(我發現Android的重安裝是先反安裝再安裝)
經過這個程序後, 我原先提供的sdb(已被使用者改過的)數據都不見, 而回到原先
我提供的預設值, 我還不知道要如何進行二次安裝時, 能保留使用者資料,
因為只要使用者更新程式就會有問題, 然後我也想過, 如果開發一個更新系統,
但我不知道要如何去更新程式, 而不更新資料庫, 再加上面第2點的問題,
我根本無法由DocumentPath把檔案備份出來(因為找不到), 如果這個問題不能解決,
那我們就無法開發一些授權的設定放在手機中!
6. 我發現(在我的手機上), 如果進行 apk的安裝並立即執行時, 我所設計的主畫面會是
黑屏(但不是當掉), 而是有看到主畫面閃一下, 然後手機畫面就黑掉了, 碰觸
螢幕都沒有反應, 都必須強制關閉app, 再重新run才正常, 注意是在安裝同步開始app
的第一次, 這個問題也困擾我很久無解!
這個問題應該不是大家討論的安裝時黑屏的問題
7. 大家在ktop討論不少的 showmessage(), 經過這些時日的使用, 我認為在Android上
如果使用 showMesage(), 如果app在啟動當中去按螢幕, 有可能造成ShowMessage的
focus離開, 然後app就死機了(因為系統被鎖死在showMessage的等待, 但focus不在
showmesage上, 卻回不來), 所以我現在都使用TPopup取代showmessage, 以TPopup
加Label或memo顯示訊息, 再用手勢動作(如向左滑, 上滑)來關閉Popup
8. 設計手機, 一定要使用TLayerOut作底放入所有的元件
基本上是 Form -> LayerOut -> 各元件,
為什麼要這樣做呢? 不用LayerOut程式也不會有問題, 但加入這個元件的最大好處是
Android手機混亂的尺寸市場, 當你設定某一尺寸手機, 在其他尺寸手機該怎麼辦,
xe5的scale 是一個很好用的工具, scale.x, scale.y 可以做畫面的放大縮小,
標準是scale.x:=1 scale.y:=1 , 如果當改為1.5, form就會被放大1.5倍, 這代表什麼?
如果你在 4.7"的大小設計, 如果在5.3"使用, 畫面自然小一號, 但你只要算出
4.7 -> 5.3 的倍數, 指定給 x,y, 則 5.3手機也可以看到同比例的大小, 是不是很好用!
但如果你不把元件都置入到LayOut上, 那你就要一個一個元件分別指定了, 但如果
都在其中, 你只要對 LayOut的x,y指定比例, 其他就交給xe5自動調整了, 這包含角度
轉向, 位移都適用, 有了這樣的規劃, 我根本不用管手機的尺寸如何
9. 要偵測手機的尺寸, 只要使用 Screen.Size.width, height 就可以取得,
同時如果在 Form -> onSize event寫, 就可以在手機轉向時, 立即取得手機是直式或
橫式(Width>height就是橫式), 當你知道直橫的結果, 就可以計算出Scale的x,y值,
然後該如何調整畫面大小就非難事!
10. 我發現在手機上要盡量避免使用Focus的功能, 因為就如showmesage 一樣, 萬一某個按鍵
focus不在其位, 而又陷入focus的控制時, app就死了, 因為進入deadLock中, 進不來也
出不去, 所以我都會把所有的按鍵CanFocus關閉, 我一直對xe5 提供這個功能很納悶,
到底目的為何, 最後我懂了(但不代表我的觀念是對的哦!), 我讓所有focus的元件都不具
有focus, 那我就不會有focus問題, 不過 TEdit的部份, 未必取消 Focus 是好的,
還是要有所斟酌!
11. 在Android的設計上, 儘量避免用多個Form來設計畫面的切換, 請改變習慣用TabControl,
因為我曾經在 Form來Form去之中, 造成 Memory leak或死機的問題, 而且
除了 main form 是由app自動create外, 其他的任何如datamodule 等, 我寧可在
main form中手動去create, 而不交由app自動操作, 沒什麼原因, 由自己操作什麼時候
開總是比較放心, 否則有時由app做, 你不知道那些會不會產生搶先被開而找不到東西
的問題
12. 嗯, 還有一個問題, 我不想鎖定手機的方向, 但希望一啟動就能導向橫式 Land Home Right
但找不到那個控制可以做到?
13. 最後一個感想是老問題, 元件太醜, 雖然xe5有改善了元件的設計, 但還是那些不是圓就是
方, 我最近使用TMS元件, 有提供如IOS的拉霸滾輪的選擇方式, PopUp畫面也很精緻,
按EMBD的說法, 要留碗飯給第三方控件廠商吃, 這我沒意見,
但如果按XE5提供的美編要放到手機上的話, 這個APP恐怕上架還沒暖身就被評價低分了,
畢竟, 大家已被竉壞了, 一個醜醜的APP引不起大家的興趣, 所以如果EMBD不強化這個部份,
那三方控件就一直有存在必要!

最後, 我必須說, embd開發出的XE5的確造福我們這一群不懂手機設計的人, 也可以設計出APP,
光憑這點就已經很了不起了, 雖然大家對XE5的評價還有待改善, 但我認為後續的行情應該是看漲,
相信會越發展越好, 同時也須給Q-COM一個讚, Q-COM在這段時間不遺餘力的推動, 我看得出來,
推動的很吃力, 但仍不放棄大家, 期待Q-COM對我們所提出的問題能在EMBD有更多主動溝通,
畢竟透過Q-COM的力量及管道, 會比我們市井小民無法上達天聽要來的更有效果及有力,
這樣我們在XE5的開發上就更能得心應手, 讓更多的開發APP出現
編輯記錄
P.D. 重新編輯於 2014-02-11 01:43:41, 註解 無‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2014-02-11 09:45:20 IP:59.120.xxx.xxx 未訂閱
謝謝分享!
qcom
版主


發表:79
回覆:114
積分:43
註冊:2011-05-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2014-02-13 16:21:25 IP:61.219.xxx.xxx 訂閱
恭喜PD 突破萬難, 終於獲致成果! 更感謝PD不藏私與大家分享.

看到PD與許多Delphier 的努力, 越來越多的app陸續推出, 我們亦與有榮焉. 未來有機會可安排 個app成果發表會.
編輯記錄
qcom 重新編輯於 2014-02-13 16:22:28, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2014-02-14 10:57:22 IP:220.136.xxx.xxx 未訂閱
還沒突破啦! 只是花了好幾個月研究才有一點心得, 同時大量搜尋網路文件, 看到眼晴脫窗, 
等這個app完成, 我可以釋放出來分享, 不過有用到TMS元件, 所以要安裝TMS 的 FIREMONKEY COMPONMENT 才行
===================引 用 qcom 文 章===================
恭喜PD 突破萬難, 終於獲致成果! 更感謝PD不藏私與大家分享.

看到PD與許多Delphier 的努力, 越來越多的app陸續推出, 我們亦與有榮焉. 未來有機會可安排 個app成果發表會.
spfrk
一般會員


發表:16
回覆:43
積分:11
註冊:2013-10-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2014-02-15 13:18:34 IP:118.160.xxx.xxx 訂閱
我去買了凱捷 j5create Android手機連接電腦同步線-JUC600,

試了 NOTE2, SONY Z, 長江 ES920, 連線時都是到 95% 時就

就跳掉了, 所以如要買此商品, 一定要先打電話去問,相容性的問題,

我有打電話去問,只回答相容性的問題,要再試試
Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2014-02-15 14:02:07 IP:220.134.xxx.xxx 訂閱
感謝 P.D. 分享!

另外在發佈 App 時, 記得要去設定 "排除的裝置" , 排除裝置可以參考

http://delphi.wikia.com/wiki/XE5_Android_Device_Support?diff=22325&oldid=0
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2014-02-15 23:51:29 IP:118.160.xxx.xxx 未訂閱
請問一下, 要如何設定?

===================引 用 Main Chen 文 章===================
感謝 P.D. 分享!

另外在發佈 App 時, 記得要去設定 "排除的裝置" , 排除裝置可以參考

http://delphi.wikia.com/wiki/XE5_Android_Device_Support?diff=22325&oldid=0
Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#8 引用回覆 回覆 發表時間:2014-02-16 06:22:53 IP:220.134.xxx.xxx 訂閱
回覆無法貼圖, 所以開新貼:

http://delphi.ktop.com.tw/board.php?cid=30&fid=1501&tid=105725

===================引 用 P.D. 文 章===================
請問一下, 要如何設定?

===================引 用 Main Chen 文 章===================
感謝 P.D. 分享!

另外在發佈 App 時, 記得要去設定 "排除的裝置" , 排除裝置可以參考

http://delphi.wikia.com/wiki/XE5_Android_Device_Support?diff=22325&oldid=0
itwawa
一般會員


發表:5
回覆:15
積分:9
註冊:2008-08-19

發送簡訊給我
#9 引用回覆 回覆 發表時間:2014-02-19 03:46:37 IP:59.127.xxx.xxx 訂閱
PD你好:
跟你一樣也是利用過年這段時間試用一下XE5,我是從delphi 5直接跳 XE5,從連電腦都不知道要
安裝手機驅動程式開始,其中也愈到不少問題,還好大都能順利解決。
跟您請教,下列幾個問題
你的第3點,DataSnap與資料庫問題,資料庫一開始我就選用SQLite,一來是免費,再者是ios、android
都嵌入SQLite省事方便 DataSnap Sever,手機 DataSanp Client端(另含通訊),也都測試都OK,
但有2個問題尚未解決:
(1)用Listview,LiistBox bind 資料沒問題,但 Grid 或 StringGrid Bind 資料時,會畫面有點被
切到很難看,又無其他多欄元件可 Bind 多欄資料,不知有何方法解決? 如果有類似 Grid 類又能
顯示多行直式更好。(Label 只能單行直式,DataSnap 似乎不支援DBGrid)
(2)免費版的 SQLite Encypt 功能只留一個接口,並無實作,看EMBD官網似乎有支援,不知你對 SQLite
Encypt 功能是否有什麼心得或是測試 OK?
你的第8點,不知你為何用 TLayerOut 而不用 TScaledLayerOut,TScaledLayerOut連Scale都不用設定,
是否TLayerOut比TScaledLayerOut更精準還是更好用嗎?
你的第13點,也是我最頭大的問題,就是你提到的元件太醜,我也覺得元件真的是太醜了(ios好看多了)
連show 範例程式給朋友看的勇氣都沒有,更別提要上APP Store 了。這麼醜的畫面怎麼見人,暈!!
還好剛在查資料時,無意間看到你此篇文章,你有提到TMS元件,可否跟您請教TMS元件有免費的嗎(how much)?
TMS 穩定嗎? 最新版是幾版?
網上查到二個 (1)TMS Pack for Firemonkey V2.1.1.4。 (2)TMS Component Full Pack 7.1.3.0。
不曉得哪個才是你用的?
能多分享點你對 TMS 的使用心得嗎? 之前從不用3thParty 元件,但在手機上似乎不用不行了,唉!!
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#10 引用回覆 回覆 發表時間:2014-02-26 10:59:04 IP:118.169.xxx.xxx 未訂閱
對 Android 我和你一樣是個新手, 但由你的po看來, 你可能比我還更瞭 fm2, 所以
問題一, 很抱歉, 我還沒有研究到那裡, 現在也正準備用 Listview 來開發, 等我使用了大家再一起分享經驗吧
問題二, 我向來都是使用 (Interbase/FireBird), 對SQlite 我完全陌生, 所以這點我也回答不了
問題三, 所有我接觸過的課程及說明會, 都是教我們用 TLayout, 至於 TScaleLayaout 有什麼差異, 我不知道, 我可以找機會測一下,
或許我用 TLayout 自己算 Scale 是入門款, TScaleLayout 早就幫我們準備了,
問題四, 這我倒可以提供一些意見, 因為我用TMS已經超過8年的時間, 但畢竟是國外的元件, 所以我完全自學, 遇到問題也無法向原廠
表示我的疑問, 只能拼命測試,
TMS 沒有免費的功能, 但到官網有試用30天的版本
如果你只想要 FM 的元件(其實也沒很多, 但就是比 XE5 要好看一些), 可以只購買 FireMonkey 的部份就好
但 TMS 提供的最大部份並不是在 FM 上, 而是 WINDOWS上的, 超過1500組以上的元件,
我會建議使用 TMS Component Studio, 因為它已包含8大類元件(含fm vcl),價格對有需求的來說, 約400歐元的價格(Single license)是比較划算
之所以會決定靠向TMS的原因是, 舉例, TMS的GRID 提供比原生的GRID 超過3倍以上的EVENT 及 PROPERITY, 對於要偵測grid 各種情況來說
tms很容易做的到, 如果你單就原生 dbgrid, stringgrid 那是少的可憐, 而且我目前看到有一直在進行維護更新改版的就是tms公司,
xe6可能快出來了, 按 embd 現在的做法, 每出來一個版本, 不若以前dephi4,5,6,7的情況, 原來的 vcl 可以直接再掛載進來,
而是要經過xe6重新編譯過, 重新產生的 bpl才可以, 但像我們買這些控件, 你不可能有機會這麼做, 那一旦昇到XEn版本, 你所有的控件等同癈物,
因為裝不進來, 但我看到至少現在 tms 配合新版出來的速度很快, 最少3個月內就會補齊, 這是我也用其他控件所看不到的, 有的要半年, 甚至一年
所以就我個人而言, tms 是值得推薦的, 我去年在ktop有發表一支轉圖程式, 就是完全用tms 元件來做, 幾乎沒有一個是使用原生, 你可以看看
tms 能做到什麼程度, 甚至 用tms 寫出一套 excel系統不是難事, 他們都提供各種excel的元件讓你做出來像excel的功能(當然不要拿全功能來比)
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#11 引用回覆 回覆 發表時間:2014-03-05 12:05:46 IP:61.224.xxx.xxx 訂閱
Dear P.D, and itwawa:
很高興看到兩位開始研究XE5 Android 開發,
站長從XE4~XE5,從iOS到Android已經自行苦研快一年了,
仍會遇到很多無解的困境,
希望有機會能與兩位一起討論開發過程遇到的問題,
很感謝兩位分享心得.

再此回覆P.D.大大的討論

1.盡量用TabControl切換頁面 來取代 Form之間的切換
也就是程式中Form愈少愈好, Form很慢, 而且也是XE5自己底層模擬出來的,
對原生的Ios或Android是沒有Form這種東西的,
尤其是Form1.ShowModal千萬不要用

2.GetDocumentPath 是取得APP程式所在位置可用的文件置放目錄,
在這個目錄下APP才成正常存取檔案,GetTempPath 也是一樣,
所有的APP都是在沙盒中的 Sand Box,互相都無法看到對方的檔案(當然也無法存取)
P.D.所言:
"對 GetdocumentPath 進行任何存取, 建立是可以通行的,
但很奇怪的是, 創建在這裡的檔案, 手機都內都遍尋不到, 可是存取卻是通的"
就是因為在沙盒中,您看到的手機中的檔案是像記憶卡,相簿目錄等,
沙盒有點像一個壓縮檔案,所以您會看不到內容,
您可以使用類似"豌豆莢"的工具程式去看到沙盒中的檔案內容

3.SQLLITE格式很少很糟糕,很難有好的運用,我現在採用.CDS檔,直接將ClientDataset的內容存起來

4.ANDROID的DEBUG 我從沒試成功過,不知道Dear P.D, and itwawa,可以成功用Android手機DEBUG中斷點嗎?

5. PD所說:
"假如我有一個資料庫(sdb)會記錄app的一些設定參數, 第一次安裝執行, 也產生了sdb
並經使用者輸入了一些設定參數儲存, 這些都沒有問題,
但如果程式改過, 重新丟到手機重安裝(我發現Android的重安裝是先反安裝再安裝)
經過這個程序後, 我原先提供的sdb(已被使用者改過的)數據都不見, 而回到原先我提供的預設值"
這也是因為程式一旦移除,沙盒中的資料也會不見.只能重裝自己用"豌豆莢"的工具,將檔案COPY出來.
重裝好後再COPY回去,好像沒有好辦法

6. PD所說:
"我發現(在我的手機上), 如果進行 apk的安裝並立即執行時, 我所設計的主畫面會是
黑屏(但不是當掉), 而是有看到主畫面閃一下, 然後手機畫面就黑掉了, 碰觸
螢幕都沒有反應, 都必須強制關閉app, 再重新run才正常, 注意是在安裝同步開始app
的第一次, 這個問題也困擾我很久無解!"
這現象我到是沒遇過,安裝APK後立即執行都沒問題,但是我遇到的問題是:
執行後按下Back回到桌面(這時程式應該已經結束了(或者按Home回到桌面,這時程式還留在執行中)
回到桌面後,再度按下APP的圖示執行,有時候程式會閃一下就不見,要在點第二次圖示才會出來,
也就是說:XE5寫的APP,在執行時將執行中的APP喚醒的功能似乎有問題,
不知道Dear P.D, and itwawa 有沒有遇過這樣的問題?

7.ShowMessage InputDialogBox 這些盡量不要用會當機 一按下Back就當了

8.ListBox速度超慢,盡量不要用 盡量改用ListView速度快非常多

9.Grid也盡量不要用 , 改用ListView 不過要顯示多欄位還要改寫很多程式

10.PD:
" 還有一個問題, 我不想鎖定手機的方向, 但希望一啟動就能導向橫式 Land Home Right
但找不到那個控制可以做到?"
我想這要寫JAVA程式來完成







------
~~~Delphi K.Top討論區站長~~~
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#12 引用回覆 回覆 發表時間:2014-03-06 00:50:53 IP:220.136.xxx.xxx 未訂閱
驚動站長重出江湖, 太感動了
對於站大的問題, 我最近一直再研究手機的設計, 越來越有一個心得,
我發現寫手機的功能都不是在寫程式, 都是在導公式, 計算, 最後導入自己的函數,
諸如比例顯示問題, 位置問題等等, 我一直都在計算各種比例的標準, 好累哦!
XE5都沒有提供一些給我們方便調整的工具, 這大概就是之前好幾寫IOS的前輩在提的,
寫ANDROID的系統最怕遇到太多尺寸的手機, 我也能體會到了

另外針對站大幾個問題再請教
1. 如何利用 CDS 在手機上存資料(不是透過DATASNAP在遠端存取哦! 而是希望在手機中直接有個資料庫可以記錄)
2. 有關資料會被移除的問題, 最後我研究的結果, 透過 XE5 連接手機丟程式, 會被清的一乾二淨, 但如果把 APK 丟到手機, 再進行安裝, ANDROID 不會移除資料庫
3. 我用很多檔案工具都無法發現我所建立的檔案, 不知站大所提的"豌豆莢"工具是那一種?
4.我會使用LISTBOX, 是因為想放在BUTTON及IMAGE, LISTVIEW 做不到這類功能, 而我不是要顯示資料, 我另外的PO文圖, 是想處理一個編圖工具, 把所要做的工具BUTTON放在LISTBOX中, 所以沒有速度上的問題, 但卻遇到螢幕轉向問題無法解決, 因為我希望橫式的在右邊, 直式的變到下邊顯示,
其實看很多手機軟體都具這個功能,
5.除錯的問題, 我還是沒有找到 TRACER的功能, 但我怎麼除錯呢, 通常我都是用一個MEMO(因為不好用SHOWMESSAGE), 然後在可能有問題的程式段, 直接要要檢查的數據寫到MEMO中來查看, 雖然很笨的做法, 但卻是最直接的方式
6.程式一啟動就會橫式, 我看很多APP都能做到, 一起來不管手機的方向, 畫面就會自動成為橫式, 因為我現在設計的是橫向的, 但是可以有轉向功能, 可是程式一起來, 如果手機擺宜的, 畫面就會變直的(按比例), 操作者還要把手機橫躺才行
7.至於透過 XE5丟到手機重啟安裝後的第一次啟動, 後來我用其他手機平板測試, 螢幕都能正常顯示, 所以這應該是我手機本身的設計問題(HTC EVO 3D)
目前測試過 ACER A3-A10, GPLUS X805, P7002 , 小米機都正常

如果站大有時間及興趣, 能再多提供給我們一些設計上的技術及建議, 則不勝感激~~
編輯記錄
P.D. 重新編輯於 2014-03-06 00:52:47, 註解 無‧
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#13 引用回覆 回覆 發表時間:2014-03-06 07:57:27 IP:210.61.xxx.xxx 未訂閱
應該是指以下這個...吧 :
download.sofun.tw/wandoujia/

===================引 用 P.D. 文 章===================
驚動站長重出江湖, 太感動了
對於站大的問題, 我最近一直再研究手機的設計, 越來越有一個心得,
我發現寫手機的功能都不是在寫程式, 都是在導公式, 計算, 最後導入自己的函數,
諸如比例顯示問題, 位置問題等等, 我一直都在計算各種比例的標準, 好累哦!
XE5都沒有提供一些給我們方便調整的工具, 這大概就是之前好幾寫IOS的前輩在提的,
寫ANDROID的系統最怕遇到太多尺寸的手機, 我也能體會到了

另外針對站大幾個問題再請教
1. 如何利用 CDS 在手機上存資料(不是透過DATASNAP在遠端存取哦! 而是希望在手機中直接有個資料庫可以記錄)
2. 有關資料會被移除的問題, 最後我研究的結果, 透過 XE5 連接手機丟程式, 會被清的一乾二淨, 但如果把 APK 丟到手機, 再進行安裝, ANDROID 不會移除資料庫
3. 我用很多檔案工具都無法發現我所建立的檔案, 不知站大所提的"豌豆莢"工具是那一種?
4.我會使用LISTBOX, 是因為想放在BUTTON及IMAGE, LISTVIEW 做不到這類功能, 而我不是要顯示資料, 我另外的PO文圖, 是想處理一個編圖工具, 把所要做的工具BUTTON放在LISTBOX中, 所以沒有速度上的問題, 但卻遇到螢幕轉向問題無法解決, 因為我希望橫式的在右邊, 直式的變到下邊顯示,
其實看很多手機軟體都具這個功能,
5.除錯的問題, 我還是沒有找到 TRACER的功能, 但我怎麼除錯呢, 通常我都是用一個MEMO(因為不好用SHOWMESSAGE), 然後在可能有問題的程式段, 直接要要檢查的數據寫到MEMO中來查看, 雖然很笨的做法, 但卻是最直接的方式
6.程式一啟動就會橫式, 我看很多APP都能做到, 一起來不管手機的方向, 畫面就會自動成為橫式, 因為我現在設計的是橫向的, 但是可以有轉向功能, 可是程式一起來, 如果手機擺宜的, 畫面就會變直的(按比例), 操作者還要把手機橫躺才行
7.至於透過 XE5丟到手機重啟安裝後的第一次啟動, 後來我用其他手機平板測試, 螢幕都能正常顯示, 所以這應該是我手機本身的設計問題(HTC EVO 3D)
目前測試過 ACER A3-A10, GPLUS X805, P7002 , 小米機都正常

如果站大有時間及興趣, 能再多提供給我們一些設計上的技術及建議, 則不勝感激~~
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#14 引用回覆 回覆 發表時間:2014-03-06 11:03:36 IP:61.224.xxx.xxx 訂閱
Dear P.D.:
別客氣,大家都在辛苦的摸索中,畢竟對我們來說都是一個新的領域:
1..CDS就是用ClientDataset元件,您可以在PC板中,將Cleintdataset1. savetofile .cds
然後 Deploy到手機中, 再 Clientdataset1. loadfomr file .cds 就可以了
2.丟.APK重新安裝也是一個辦法
3.上次我說錯了 "豌豆莢"只能將一些手機無原廠驅動程式的用"豌豆莢"驅動起來
但是無法看到檔案內容, 如果是Iphone就可以用ITools工具去看沙盒的內容
有一套Android Commander可以看到檔案內容,您可以試看看, 我還沒試過
4.動態新增Listbox的Item就會很慢很慢
5.Debug Android我也只能用 類似ShowMessage的方式來處理(如果網友可以DEBUG請分享給大家)
6.您這樣說似乎有點矛盾,程式又要可以自動轉橫轉直,又要開始依執行後是橫的,
一般來說都是:永遠橫的, 或是永遠直的, 或者依照手機方式自動轉 , 一般都是這三種情況,
您的情況好特殊?



===================引 用 P.D. 文 章===================
驚動站長重出江湖, 太感動了
對於站大的問題, 我最近一直再研究手機的設計, 越來越有一個心得,
我發現寫手機的功能都不是在寫程式, 都是在導公式, 計算, 最後導入自己的函數,
諸如比例顯示問題, 位置問題等等, 我一直都在計算各種比例的標準, 好累哦!
XE5都沒有提供一些給我們方便調整的工具, 這大概就是之前好幾寫IOS的前輩在提的,
寫ANDROID的系統最怕遇到太多尺寸的手機, 我也能體會到了

另外針對站大幾個問題再請教
1. 如何利用 CDS 在手機上存資料(不是透過DATASNAP在遠端存取哦! 而是希望在手機中直接有個資料庫可以記錄)
2. 有關資料會被移除的問題, 最後我研究的結果, 透過 XE5 連接手機丟程式, 會被清的一乾二淨, 但如果把 APK 丟到手機, 再進行安裝, ANDROID 不會移除資料庫
3. 我用很多檔案工具都無法發現我所建立的檔案, 不知站大所提的"豌豆莢"工具是那一種?
4.我會使用LISTBOX, 是因為想放在BUTTON及IMAGE, LISTVIEW 做不到這類功能, 而我不是要顯示資料, 我另外的PO文圖, 是想處理一個編圖工具, 把所要做的工具BUTTON放在LISTBOX中, 所以沒有速度上的問題, 但卻遇到螢幕轉向問題無法解決, 因為我希望橫式的在右邊, 直式的變到下邊顯示,
其實看很多手機軟體都具這個功能,
5.除錯的問題, 我還是沒有找到 TRACER的功能, 但我怎麼除錯呢, 通常我都是用一個MEMO(因為不好用SHOWMESSAGE), 然後在可能有問題的程式段, 直接要要檢查的數據寫到MEMO中來查看, 雖然很笨的做法, 但卻是最直接的方式
6.程式一啟動就會橫式, 我看很多APP都能做到, 一起來不管手機的方向, 畫面就會自動成為橫式, 因為我現在設計的是橫向的, 但是可以有轉向功能, 可是程式一起來, 如果手機擺宜的, 畫面就會變直的(按比例), 操作者還要把手機橫躺才行
7.至於透過 XE5丟到手機重啟安裝後的第一次啟動, 後來我用其他手機平板測試, 螢幕都能正常顯示, 所以這應該是我手機本身的設計問題(HTC EVO 3D)
目前測試過 ACER A3-A10, GPLUS X805, P7002 , 小米機都正常

如果站大有時間及興趣, 能再多提供給我們一些設計上的技術及建議, 則不勝感激~~
------
~~~Delphi K.Top討論區站長~~~
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#15 引用回覆 回覆 發表時間:2014-03-06 11:06:12 IP:61.224.xxx.xxx 訂閱
另外我問的這個問題有網友遇過嗎?
APP第一次安裝且執行成功後,
按下Back回到桌面(這時程式應該已經結束了),或者按Home回到桌面(這時程式還留在執行中),
回到桌面後,再度按下APP的圖示執行時:
有時候程式會閃一下就不見,要在點第二次圖示才會出來,
也就是說:XE5寫的APP,在執行時將執行中的APP喚醒的功能似乎有問題,
不知道大家有沒有遇過這樣的問題?


------
~~~Delphi K.Top討論區站長~~~
Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#16 引用回覆 回覆 發表時間:2014-03-06 11:56:08 IP:220.134.xxx.xxx 訂閱
遇過,但不是每一支 App 都會如此,原因不明。

===================引 用 領航天使 文 章===================
另外我問的這個問題有網友遇過嗎?
APP第一次安裝且執行成功後,
按下Back回到桌面(這時程式應該已經結束了),或者按Home回到桌面(這時程式還留在執行中),
回到桌面後,再度按下APP的圖示執行時:
有時候程式會閃一下就不見,要在點第二次圖示才會出來,
也就是說:XE5寫的APP,在執行時將執行中的APP喚醒的功能似乎有問題,
不知道大家有沒有遇過這樣的問題?


spfrk
一般會員


發表:16
回覆:43
積分:11
註冊:2013-10-01

發送簡訊給我
#17 引用回覆 回覆 發表時間:2014-03-06 12:11:48 IP:111.250.xxx.xxx 訂閱
官網不建議使用 ShowMessage,因為會因 focus 的轉移而當掉,改用 其它方式來運作,
但是我在使用 indy ftp 此物件時, indy ftp 常出現 ShowMessage 訊息, 這不是我能控制
的,如使用者按下其他按鍵,造成 focus的轉移,而使 app 當掉,實在有點奇怪.

3個試用的 email 帳號已用完,試用期也到了,還是沒有辦法完成基本功能的測試,有點失望,
本來以為得到完整解決方案的....

JamesJuan
中階會員


發表:2
回覆:76
積分:80
註冊:2003-04-08

發送簡訊給我
#18 引用回覆 回覆 發表時間:2014-03-06 13:48:05 IP:124.9.xxx.xxx 未訂閱
畢竟才是 delphi 第一個版本支援 android 開發,期望是粉高沒錯。不過回過頭來想想,能讓我們這些  delphi 老用戶,不用花費從頭學習的時間就可以開發 app,也是該感謝 EMBT 的努力了...
新的 RAD Studio, Delphi and C Builder Roadmap 已經出來了,趕緊去瞧瞧今年預計有哪些新變化吧...
http://edn.embarcadero.com/article/43677

Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#19 引用回覆 回覆 發表時間:2014-03-06 15:50:16 IP:220.134.xxx.xxx 訂閱
目前 ShowMessasge 可以用 TFrame 或 TPopup 来解决。
我是使用 TFrame 來解決,開啟對話框,對話框內可以再開啟另一個對話框,試過 7 ~ 8 層沒有問題。

我搜尋了 indy 的原始碼,它好像沒有用到 ShowMessage 或 MessageDlg ?

===================引 用 spfrk 文 章===================
官網不建議使用 ShowMessage,因為會因 focus 的轉移而當掉,改用 其它方式來運作,
但是我在使用 indy ftp 此物件時, indy ftp 常出現 ShowMessage 訊息, 這不是我能控制
的,如使用者按下其他按鍵,造成 focus的轉移,而使 app 當掉,實在有點奇怪.

3個試用的 email 帳號已用完,試用期也到了,還是沒有辦法完成基本功能的測試,有點失望,
本來以為得到完整解決方案的....

P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#20 引用回覆 回覆 發表時間:2014-03-06 16:28:14 IP:59.120.xxx.xxx 未訂閱

是因為我設計的畫面是以橫式方向來擺放所有物件, 所以最好是用橫式操作,
但又因為手機手持最好的操作方式是直式, 可以一手掌握(各位不妨試試看, 橫的要一手操作很難)
所以我也提供直式的畫面給大家用(但不是另外設計畫面, 而是就橫的scale 按比例縮放),
但直的就會造成畫面被擠壓, 所以才會希望一開始就是訂在橫的, 如果客戶喜歡再以直的操作, 是這樣的原因
===================引 用 領航天使 文 章===================

6.您這樣說似乎有點矛盾,程式又要可以自動轉橫轉直,又要開始依執行後是橫的,
一般來說都是:永遠橫的, 或是永遠直的, 或者依照手機方式自動轉 , 一般都是這三種情況,
您的情況好特殊?



P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#21 引用回覆 回覆 發表時間:2014-03-06 16:31:22 IP:59.120.xxx.xxx 未訂閱
這個問題, 我在多支手機上都曾遇到, 有時要等久一點才會有回應, 有時是直接死給你看, 
我也不知道原因, 都只好直接用手機釋放功能拖出去再重新執行

發生機率其實不低, 多半在程式已啟動, 然後被手機回到"黑畫面", 再喚醒時比較容易發生
===================引 用 領航天使 文 章===================
另外我問的這個問題有網友遇過嗎?
APP第一次安裝且執行成功後,
按下Back回到桌面(這時程式應該已經結束了),或者按Home回到桌面(這時程式還留在執行中),
回到桌面後,再度按下APP的圖示執行時:
有時候程式會閃一下就不見,要在點第二次圖示才會出來,
也就是說:XE5寫的APP,在執行時將執行中的APP喚醒的功能似乎有問題,
不知道大家有沒有遇過這樣的問題?


Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#22 引用回覆 回覆 發表時間:2014-03-06 16:38:20 IP:220.134.xxx.xxx 訂閱
在手機平放在桌上時,下面程式可以:啟動時自動橫屏,顯示主畫面後,又支援直模屏。

procedure TMainForm.FormCreate(Sender: TObject);
begin
Application.FormFactor.Orientations := [TFormOrientation.soLandscape];
end;
procedure TMainForm.FormShow(Sender: TObject);
begin
Application.FormFactor.Orientations := [TFormOrientation.soPortrait, TFormOrientation.soLandscape];
end;

不過拿直屏在手上,啟動後就都會顯示直屏。
===================引 用 P.D. 文 章===================

是因為我設計的畫面是以橫式方向來擺放所有物件, 所以最好是用橫式操作,
但又因為手機手持最好的操作方式是直式, 可以一手掌握(各位不妨試試看, 橫的要一手操作很難)
所以我也提供直式的畫面給大家用(但不是另外設計畫面, 而是就橫的scale 按比例縮放),
但直的就會造成畫面被擠壓, 所以才會希望一開始就是訂在橫的, 如果客戶喜歡再以直的操作, 是這樣的原因
===================引 用 領航天使 文 章===================

6.您這樣說似乎有點矛盾,程式又要可以自動轉橫轉直,又要開始依執行後是橫的,
一般來說都是:永遠橫的, 或是永遠直的, 或者依照手機方式自動轉 , 一般都是這三種情況,
您的情況好特殊?



spfrk
一般會員


發表:16
回覆:43
積分:11
註冊:2013-10-01

發送簡訊給我
#23 引用回覆 回覆 發表時間:2014-03-06 20:58:15 IP:114.45.xxx.xxx 訂閱
當 INDY FTP data disconnect 而不是 communication disconnect 時就
會出現 Connection Closed Gracefully 的 ShowMessage, 關閉後 FTP
的傳輸也就斷掉, 只有重新開啟程式才能恢復連線, google 很多文章,都試
過了無效.

不知哪位先進有 TFRAME 或 TPOPUP 的範例, 能提供給我參考, 謝謝 !
Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#24 引用回覆 回覆 發表時間:2014-03-07 05:59:40 IP:220.134.xxx.xxx 訂閱
請參考 Firemonkey Dialog :

github.com/OneChen/FrameDialog

===================引 用 spfrk 文 章===================
當 INDY FTP data disconnect 而不是 communication disconnect 時就
會出現 Connection Closed Gracefully 的 ShowMessage, 關閉後 FTP
的傳輸也就斷掉, 只有重新開啟程式才能恢復連線, google 很多文章,都試
過了無效.

不知哪位先進有 TFRAME 或 TPOPUP 的範例, 能提供給我參考, 謝謝 !
編輯記錄
Main Chen 重新編輯於 2014-03-07 06:05:30, 註解 無‧
Main Chen 重新編輯於 2014-03-07 08:07:47, 註解 無‧
Main Chen 重新編輯於 2014-03-07 08:36:59, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#25 引用回覆 回覆 發表時間:2014-03-07 16:30:08 IP:118.160.xxx.xxx 未訂閱
這個方式我曾經試過, 但結果會變如下,
左圖是我設計橫屏的狀況, 程式啟動時, 我手機為直屏, 就變成如右圖(只有一半被橫轉, 另一半不見了)
而且, 就算 ONSHOW 加入其他 ORIENTATIONS 有橫直, 但實際上手機再怎麼翻, 都不會跟著轉
所以還要再研究中


===================引 用 Main Chen 文 章===================
在手機平放在桌上時,下面程式可以:啟動時自動橫屏,顯示主畫面後,又支援直模屏。

procedure TMainForm.FormCreate(Sender: TObject);
begin
Application.FormFactor.Orientations := [TFormOrientation.soLandscape];
end;
procedure TMainForm.FormShow(Sender: TObject);
begin
Application.FormFactor.Orientations := [TFormOrientation.soPortrait, TFormOrientation.soLandscape];
end;

不過拿直屏在手上,啟動後就都會顯示直屏。




編輯記錄
P.D. 重新編輯於 2014-03-07 16:30:54, 註解 無‧
Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#26 引用回覆 回覆 發表時間:2014-03-07 17:25:35 IP:220.134.xxx.xxx 訂閱
這是佈局的問題,通常直橫轉後,除非介面很簡單,可以用 Align 或 Anchors 來指定,不然都要重新佈局。

可將重新佈局的程式寫在 OnResize

===================引 用 P.D. 文 章===================
這個方式我曾經試過, 但結果會變如下,
左圖是我設計橫屏的狀況, 程式啟動時, 我手機為直屏, 就變成如右圖(只有一半被橫轉, 另一半不見了)
而且, 就算 ONSHOW 加入其他 ORIENTATIONS 有橫直, 但實際上手機再怎麼翻, 都不會跟著轉
所以還要再研究中


===================引 用 Main Chen 文 章===================
在手機平放在桌上時,下面程式可以:啟動時自動橫屏,顯示主畫面後,又支援直模屏。

procedure TMainForm.FormCreate(Sender: TObject);
begin
Application.FormFactor.Orientations := [TFormOrientation.soLandscape];
end;
procedure TMainForm.FormShow(Sender: TObject);
begin
Application.FormFactor.Orientations := [TFormOrientation.soPortrait, TFormOrientation.soLandscape];
end;

不過拿直屏在手上,啟動後就都會顯示直屏。




test28
一般會員


發表:28
回覆:28
積分:16
註冊:2013-08-26

發送簡訊給我
#27 引用回覆 回覆 發表時間:2014-03-12 06:56:09 IP:115.80.xxx.xxx 未訂閱
請問使用TScaledLayerOut,其他多沒問題,但WEBBROWSER卻無效,不會自動隨螢幕大小變?
有解嗎?謝謝
Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#28 引用回覆 回覆 發表時間:2014-03-12 07:02:48 IP:220.134.xxx.xxx 訂閱
可能是 TScaledLayout 只對 Firemonkey 元件有效吧!

Android 下的 WebBrowser 是調用 Android 原生元件,TScaledLayout 對它應該是不會起作用的。

===================引 用 test28 文 章===================
請問使用TScaledLayerOut,其他多沒問題,但WEBBROWSER卻無效,不會自動隨螢幕大小變?
有解嗎?謝謝
系統時間:2024-04-27 12:05:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!