试了一下,关于好几个广告界面,左右滚动的效果:用TabControl 加上定时器实现即可。
1、TTabControl外观
TTabControl的外观由属性TabPosition控制,可选项包括:
tpTop 选项tab在控件上方
tpBottom 选项tab在控件下方
tpNone 以原点形式显示选项tab,在控件下方,如下图:
tpDots 以方格形式显示选项tab,在控件下方,如下图:
以下是源代码:
//每五秒滚动一次Procedure TForm1.FormActivate(Sender: TObject);
Begin
Timer1.Interval := 5000;
End;
//自动滚动;
Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
If TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount-1] Then
TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex+1]
Else
TabControl1.ActiveTab := TabControl1.Tabs[0];
End;
//手势编程,也可以不需要;
Procedure TForm1.TabControl1Gesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean);
Begin
Case EventInfo.GestureID Of //识别事件的手势
sgiLeft: //由右向左滑动手指
Begin
//如果不是最后一个tab,则选择下一个tab;如果是,则选择第一个。
If TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount-1] Then
TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex+1]
Else
TabControl1.ActiveTab := TabControl1.Tabs[0];
Handled := True; //已完成代码处理
End;
sgiRight: //由左向右滑动手指
Begin
//如果不是第一个tab,则选取前一个tab;如果是,则选择最后一个。
If TabControl1.ActiveTab <> TabControl1.Tabs[0] Then
TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex-1]
Else
TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabCount-1];
Handled := True; //已代码处理
End;
End;
End;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步