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

TEdit 的問題

缺席
P.D.
版主


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2014-03-20 00:52:11 IP:59.120.xxx.xxx 未訂閱
請問各位:

我現遭遇一個很嚴重的問題,

畫面拉一個TEdit(還有其他元件),
丟到手機run, 一開始只要click Edit 元件, 系統自動呼叫出虛擬鍵盤, 然後我把鍵盤再給關閉(收回), 程式就crash 回到手機桌面,
這個畫面很難形容, 但已困擾我一個多月, 可是有時編譯出來的又不會, 有時又會, 真不知道要從何debug,
不知道各位有沒有遇到類似的問題
P.D.
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2014-03-20 10:48:40 IP:59.120.xxx.xxx 未訂閱
補充一下, 

之前測試手機常無預警的跳掉, 一直找不到引發的點, 直到這一兩天, 發現

其中一個 TEdit 只要呼叫鍵盤(沒有寫任何code, 是xe5自動呼叫), 再收合鍵盤(由手機上點選鍵盤的收合),
這時候就直接跳掉, 或許各位會利用xe5開啟一個新專案, 放一個Tedit 測試, 然後告訴我並不會,
其實這點我也測試過, 的確不會, 但在我的專案中, 是一個完整的app, 所以有tmemo, tspin, tlayer, tshape...很多元件,
我不可能一個一個去測, 因此想請教有沒有網友也有遭遇到我這樣的問題

ps. 在眾多的Tedit 中, 只有這一個有問題, 我也曾刪除重建, 或者把不會引發的複製過來都不行
甚至把這個tedit 放到別的tab上等等, 我能想的到的都做了
但我另外發現, 目前我測試的版本是4.2.2, 如果我放到 4.0.3 版本, 收合不會當機, 但如果在鍵盤出現的情況,
直接進行 tab slide(滑動到別頁) 也會引發, 我懷疑這是android 的問題嗎? 還是 xe5 的問題?
P.D.
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2014-03-22 09:42:23 IP:1.165.xxx.xxx 未訂閱
終於找到問題, 

以下為示意動作

Edit1
Edit2
Edit3 預設 Visible := False

按Edit1 會引發crash, 按 Edit2 不會

Edit1 沒有任何 Event

Edit2 on Enter 有 Event

Edit3.Visible := True;
Edit3.Text := Edit2.text;

onForm VistualKeyboardHide 有一個 Event

Edit2.Text := Edit3.Text
Edit3.visible := False;

我發現, 按 Edit2出現 vistualKeyboard 時, 會顯示 Edit3, 把 Edit2 丟給 Edit3, 當鍵盤收回時, 把 Edit3丟回給 Edit2

當我按 Edit2 這兩個 Event 圴能正常執行,

但如果我是先按 Edit1 時出現鍵盤沒有問題, 但收合時觸發 KeyboardHide Event 就Crash,
在以前的Delphi系統, 這是不會引發錯誤的, 因為 Edit3 物件是存在的, 只是不顯示,
但在 Xe5 下, 似乎如果 Visible = Flase 時, 物件好像變的不存在, 所以收合時要執行到Edit3的動作就當了
但如果是先按Edit2, 曾有觸發 Edit3 Visible = True 後, 再來按 Edit1 就不會有問題,
這與我以往的設計不同, 所以一直查不到,
後來我把程式改了

if Edit3.visible = True then begin
Edit2.Text := Edit3.text;
Edit3.visible := false;
end
也是不行,

因為 Edit3 是放在 TabControl 的第二頁
所以我改成判斷頁面的方式, 再點 Edit1 就不會引發 Crash

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