線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1496
推到 Plurk!
推到 Facebook!

Delphi XE7 開發 Android 平板程式 (TTextCell 中的 OnApplyStyleLookup及OnKeyDown無法動作)

缺席
QCom Support
一般會員


發表:15
回覆:32
積分:24
註冊:2012-12-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-04-02 18:34:51 IP:61.219.xxx.xxx 訂閱
大家好,幫客戶代 PO 一個 Delphi XE7 Update 1 開發 Android 平板程式時遇到的問題,請教是否有什麼建議可以提供參考?

謝謝!



我在 Delphi XE5 開發 Android 平板程式時,TTextCell 中的 OnApplyStyleLookup及OnKeyDown都可以Work,可是轉換到 Delphi XE7 後都不行了。

請教我要如何改寫



ClientDataSet_ITEM.First;

for iLoop := 0 to ClientDataSet_ITEM.RecordCount-1 do

begin

StringGrid_ITEM.Cells[0,iLoop] := ClientDataSet_ITEM.FieldByName('ITEM').AsString;

StringGrid_ITEM.Cells[1,iLoop] := ClientDataSet_ITEM.FieldByName('ITEMVALUE').AsString;

StringGrid_ITEM.Cells[2,iLoop] := ClientDataSet_ITEM.FieldByName('UNIT').AsString;

StringGrid_ITEM.Cells[3,iLoop] := ClientDataSet_ITEM.FieldByName('ITEMTYPE').AsString;

ClientDataSet_ITEM.Next;

end;

//

for iLoop := 0 to 3 do

begin

for jLoop := 0 to StringGrid_ITEM.Columns[iLoop].ChildrenCount-1 do

begin

(StringGrid_ITEM.Columns[iLoop].Children[jLoop] as TTextCell).OnApplyStyleLookup := StringGridCellStyleChange;

if iLoop = 1 then

begin

(StringGrid_ITEM.Columns[iLoop].Children[jLoop] as TTextCell).OnKeyDown := StyledControlEnterKeyDown;

(StringGrid_ITEM.Columns[iLoop].Children[jLoop] as TTextCell).OnEnter := StringGridOnEnterChange;

end;

end;

end;



procedure StringGridCellStyleChange 是在改變 TTextCell 字體大小及顏色

procedure StringGridOnEnterChange 是當使用者按下平板上的 Enter 時跳下一行。

編輯記錄
QCom Support 重新編輯於 2015-04-02 18:37:29, 註解 無‧
P.D.
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-04-06 15:39:20 IP:118.169.xxx.xxx 未訂閱
因為XE5及XE7 有極大的改變, 包含 prooerity 的設定, event 的觸發等等, 我不是清楚本文的功能, 但依據經驗有可能是觸發的事件有異動了, 或者屬性的改變等等, 是否可以先找找看其他觸發事件會不會正常
egg.huang
一般會員


發表:0
回覆:1
積分:0
註冊:2015-04-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-04-07 12:19:23 IP:61.222.xxx.xxx 訂閱
不好意思,這問題是我發問給 Qcom

簡單說 stringgrid 當你放入 cell[x,y] 值後會是一個 TextCell 物件,在 Delphi XE5 中我可以對這物件在 On ApplyStyleLookup, On KeyDown, On Enter 放入我要觸發的 procedure 事件。

可是當我 up 至 XE7 後,發現這些事件皆無被觸發,甚至我設定 (Sender as TTextCell).KeyboardType := TVirtualKeyboardType.PhonePad; 也是無效的。



我現在真不知道要怎麼改,google 了好久,一點頭緒也沒有,有沒有那位大大可以幫幫忙,告訴我要怎麼改呢?

編輯記錄
egg.huang 重新編輯於 2015-04-07 12:20:35, 註解 無‧
QCom Support
一般會員


發表:15
回覆:32
積分:24
註冊:2012-12-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2015-04-22 15:58:13 IP:61.219.xxx.xxx 訂閱
這個問題之前有請Gordon幫忙看過,應該是BUG所以已經反應到Embarcadero原廠的Quality Central,目前只能等原廠去進行修正.
http://qc.embarcadero.com/wc/qcmain.aspx?d=130925
系統時間:2024-04-25 14:00:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!