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

有關 TabControl 滑動的問題

缺席
P.D.
版主


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2014-02-04 16:50:21 IP:61.223.xxx.xxx 未訂閱
請問各位

我想設計一個手機最常見的滑動切換頁面(TabControl)的功能

首先在 form上拉一個 TGestureManager元件, 一個TLayOut, 一個 TTabControl, 加入 Tab1, Tab2 兩個頁面
然後在 TTabControl 的 O n Gesture 事件中寫下
//識别事件的手势
case EventInfo.GestureID of
//由右向左滑動手指
sgiLeft :
begin
//如果不是最後一個tab,则選擇下一個tab
if TabCtrl_Main.ActiveTab <> TabCtrl_Main.Tabs[TabCtrl_Main.TabCount-1] then
TabCtrl_Main.ActiveTab := TabCtrl_Main.Tabs[TabCtrl_Main.TabIndex 1];
Handled := True;
end;
//由左向右滑動手指
sgiRight:
begin
//如果不是第一個tab,则選取前一個tab
if TabCtrl_Main.ActiveTab <> TabCtrl_Main.Tabs[0] then
TabCtrl_Main.ActiveTab := TabCtrl_Main.Tabs[TabCtrl_Main.TabIndex-1];
Handled := True;
end;
end;
第三步, 在TTabControl 的 Touch 的 GestureManage1 指定給GestureManager property
第四步, 在 Gesture 的 Standard 把 Left, Right 勾起來, 丟到手機上可以達到滑動切換的功能,
但問題來了, 切換時沒有滑動的感覺, 是馬上變換, 我想要做出滑動的感覺,
所以建置一個 ActionList, 把 TChangeTabAction 放進來, 然後在剛才 Touch 的 left right 分別指定給這個 TChangeTabAction
再度丟到手機, 這次手指滑動確實有滑動的動畫效果, 但卻怎麼也無法由 Tab1 切換到Tab2, 手動切到Tab2, 也無法變換到 Tab1

不知那個步驟漏掉了?

另外, 還有滑動的順暢度不如預期, 如果在 TabControl 的中間位置向左或右滑動, 感應的程度很不好, 有時要滑動好幾次才會啟動事件,
但如果在 TabConorl 的離左界(或右界)約一公分往邊界滑動, 則感應度是100%, 不知各位有沒有遇到這樣的問題
編輯記錄
P.D. 重新編輯於 2014-02-04 17:06:06, 註解 無‧
Main Chen
高階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2014-02-06 08:53:35 IP:112.104.xxx.xxx 訂閱
用手勢來滑動, 沒有辦法滑到一半再滑回去, 你可以試試這個的滑動效果:
https://play.google.com/store/apps/details?id=com.Digifort.MobileClient
P.D.
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2014-02-06 11:51:53 IP:59.120.xxx.xxx 未訂閱
我不是要滑一半再滑回去, 而是希望有 slide 的動畫效果, 以上所貼的訊息, 
測試結果是沒有動畫效果, 直接切換面頁, 與大家所認知的手機操作有出入 ,
當然如果按李維老師之前的 IOS課程, 是可以寫一段滑動的動畫效果,
只是有點麻煩, 而XE5又提供了 TCahngeTab 的Action, 所以我想是不是能通過
這個Action直接達成就可以了

===================引 用 Main Chen 文 章===================
用手勢來滑動, 沒有辦法滑到一半再滑回去, 你可以試試這個的滑動效果:
https://play.google.com/store/apps/details?id=com.Digifort.MobileClient
JamesJuan
中階會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2014-02-10 11:00:10 IP:114.32.xxx.xxx 未訂閱
建議可以用

ChangeTabActionxxx.Action.ExecuteTarget(nil) 取代

TabCtrl_Main.ActiveTab := xxx

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