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

如何取得鍵盤痤標

答題得分者是:itwawa
P.D.
版主


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2014-02-15 23:54:34 IP:118.160.xxx.xxx 未訂閱
請問各位

1. 如何取得虛擬鍵盤被呼叫時的 top, left 座標值

2. 如果在手機上把虛擬鍵盤收回, fm2 要如何可以偵測到
Main Chen
高階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2014-02-16 06:36:26 IP:220.134.xxx.xxx 訂閱
官網有範例, 可以參考:

docwiki.embarcadero.com/CodeExamples/XE5/en/FMX.Mobile.KeyboardTypes_Sample_(Delphi)

不過每一家廠牌的機子, 鍵盤性能都不太一樣, 會些許的反應差別.
P.D.
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2014-02-16 12:02:42 IP:118.160.xxx.xxx 未訂閱
我看過, 還有 RadStudio 也有sample, 但都寫得不食人間煙火般的, 但都看不懂
我想要的功能就是在輸入 Tedit 時, 會被鍵盤擋到, 到移到鍵盤的上方
===================引 用 Main Chen 文 章===================
官網有範例, 可以參考:

docwiki.embarcadero.com/CodeExamples/XE5/en/FMX.Mobile.KeyboardTypes_Sample_(Delphi)

不過每一家廠牌的機子, 鍵盤性能都不太一樣, 會些許的反應差別.
編輯記錄
P.D. 重新編輯於 2014-02-16 12:03:46, 註解 無‧
Main Chen
高階會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2014-02-16 16:59:46 IP:220.134.xxx.xxx 訂閱
這個範例就是在示範把 Edit 移到鍵盤之上,它的作法是將 Edit 放在一個 ScrollBox 裡面,鍵盤升起後,再上捲。


但不是每一次都能成功上捲(不是每一次都會觸法事件),測試:

SONY:第一次點 Edit 後,可以上捲,接著關閉鍵盤(按鍵盤自身的關閉鍵,不是按上一頁),再點 Edit 後,就不會再顯示鍵盤,必需要轉移焦點(SetFocus)再點回來才行。

NEXUS 7:反覆操作皆正常。

以上測試使用「Google 注音輸入法」,運用以上特性,再找出適合自己的解決方案。


===================引 用 P.D. 文 章===================
我看過, 還有 RadStudio 也有sample, 但都寫得不食人間煙火般的, 但都看不懂
我想要的功能就是在輸入 Tedit 時, 會被鍵盤擋到, 到移到鍵盤的上方
===================引 用 Main Chen 文 章===================
官網有範例, 可以參考:

docwiki.embarcadero.com/CodeExamples/XE5/en/FMX.Mobile.KeyboardTypes_Sample_(Delphi)

不過每一家廠牌的機子, 鍵盤性能都不太一樣, 會些許的反應差別.
itwawa
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2014-02-19 03:53:27 IP:59.127.xxx.xxx 訂閱
從 procedure TForm1.FormVirtualKeyboardHidden(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);

TRect 就有 Top, Left...
P.D.
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2014-02-26 00:21:34 IP:118.169.xxx.xxx 未訂閱
一頭栽入 fm2 的設計, 也看了一堆文獻,有幾篇提到 FormVirtualKeyboardShown 可以偵測, 但一直都很納悶, 這個 event到底在那裡, 
最後還按網路說明自己開了一個procedure 來跑, 但都得不到回應,
原來在 form 中就已經有提供了, 取得 Bounds.Top 就知道鍵盤的y 起始座標, 雖然不同手機會有些許的痤標誤差, 但基本上還是可以取得值來算要往上抬高多少,
暫時問題已經可以解決, 當然再進一步想做得更smart 的話, 還要費一些心思啦!

感恩~~
===================引 用 itwawa 文 章===================
從 procedure TForm1.FormVirtualKeyboardHidden(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);

TRect 就有 Top, Left...
系統時間:2024-04-26 1:55:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!