Delphi XE10让android的界面设计摆脱繁杂
2016-01-14 17:18
357 查看
设计一个选项卡。
大体图样:
1、创建一个multi_Device_Application;2、在form上放一个Rectangle1,设置align为top。设置fill属性的kind为Gradient,编辑Gradient(颜色取值见样图)。3、再放一个Rectange2设置align为top,底色为白色。4、在Rectange2上放置三个RoundRect1,RoundRect2,RoundRect3。设置它们的Corners属性的TopLeft和TopRight为TURE,BottomLeft和BottomRight为FALSE,则圆角出现了。然后分别设置它们的Fill属性。5、放置一个Tabcontrol控件,设置TopPostion为None;align为client。6、设置RoundRect1,RoundRect2,RoundRect3的tag属性分别为:1,2,3
直接上代码:
大体图样:
1、创建一个multi_Device_Application;2、在form上放一个Rectangle1,设置align为top。设置fill属性的kind为Gradient,编辑Gradient(颜色取值见样图)。3、再放一个Rectange2设置align为top,底色为白色。4、在Rectange2上放置三个RoundRect1,RoundRect2,RoundRect3。设置它们的Corners属性的TopLeft和TopRight为TURE,BottomLeft和BottomRight为FALSE,则圆角出现了。然后分别设置它们的Fill属性。5、放置一个Tabcontrol控件,设置TopPostion为None;align为client。6、设置RoundRect1,RoundRect2,RoundRect3的tag属性分别为:1,2,3
直接上代码:
unit TabbedTemplate; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.TabControl, FMX.StdCtrls, FMX.Gestures, FMX.Controls.Presentation, FMX.Objects, FMX.Ani; type TTabbedForm = class(TForm) HeaderToolBar: TToolBar; ToolBarLabel: TLabel; TabControl1: TTabControl; TabItem1: TTabItem; TabItem2: TTabItem; TabItem3: TTabItem; GestureManager1: TGestureManager; Label2: TLabel; Label3: TLabel; Rectangle1: TRectangle; TabPanel: TPanel; Line1: TLine; RoundRect1: TRoundRect; RoundRect2: TRoundRect; Label5: TLabel; Label6: TLabel; RoundRect3: TRoundRect; Label7: TLabel; Rectangle2: TRectangle; Label1: TLabel; procedure FormCreate(Sender: TObject); procedure FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); procedure TabControl1Gesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); procedure TabHeadrOnClick(Sender: TObject); private { Private declarations } CurTabIndex:integer; public { Public declarations } end; var TabbedForm: TTabbedForm; implementation {$R *.fmx} procedure TTabbedForm.TabHeadrOnClick(Sender: TObject); var ClickTag:integer; i:integer; begin if (Sender is TLabel) then begin ClickTag:=Tlabel(sender).Tag end else if (Sender is TRoundRect) then begin ClickTag:=TRoundRect(Sender).Tag; end; if ClickTag<>CurTabIndex then begin for I := 0 to self.ComponentCount-1 do begin if (self.Components[i] is TRoundRect) then begin TRoundRect(self.Components[i]).Fill.Kind:=TBrushKind.Gradient; TRoundRect(self.Components[i]).Fill.Gradient.Color:= TAlphaColor($FFE2E4E4); TRoundRect(self.Components[i]).Fill.Gradient.Color1:=TAlphaColor($FFFFFFFF); TRoundRect(self.Components[i]).Fill.Gradient.Style:=TGradientStyle.Linear; TRoundRect(self.Components[i]).Stroke.Kind:=TBrushKind.None; end; end; TabControl1.ActiveTab:=TabControl1.Tabs[ClickTag-1];; CurTabIndex:=ClickTag; TRoundRect(sender).Fill.Kind:=TBrushKind.Solid; TRoundRect(Sender).Fill.Color:= TAlphaColorRec.Lightskyblue; TRoundRect(Sender).Stroke.Kind:=TBrushKind.Solid; TRoundRect(sender).stroke.Color:=TAlphaColorRec.Lightblue; end; end; procedure TTabbedForm.FormCreate(Sender: TObject); begin { This defines the default active tab at runtime } TabControl1.ActiveTab := TabItem1; CurTabIndex:=1; end; procedure TTabbedForm.FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); begin {$IFDEF ANDROID} case EventInfo.GestureID of sgiLeft: begin if TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount-1] then begin TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex+1]; Handled := True; end; end; sgiRight: begin if TabControl1.ActiveTab <> TabControl1.Tabs[0] then begin TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex-1]; Handled := True; end; end; end; {$ENDIF} end; procedure TTabbedForm.TabControl1Gesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); begin case EventInfo.GestureID of sgiRight: begin TabControl1.Previous(); Handled:=True; end; sgiLeft: begin TabControl1.Next(); Handled:=True; end; end; end; end.
相关文章推荐
- DELPHI下的SOCK编程(转)
- Delphi 条件编译
- 使用Delphi命名空间
- 【Delphi 篇】CodeGear 问题与解决方式
- 今天在Delphi7中使用AADOConnection 连接Excel
- Delphi 调用webservice接口的三类方法
- 在win10 10240版本上完美安装了delphi7
- Delphi调用MSSQL存储过程返回的多个数据集的方法
- delphi R3下 跨进程获取DLL信息 NtQueryInformationProcess
- 用delphi写多屏幕程序
- Delphi 的接口机制——接口操作的编译器实现过程(2)
- Delphi 的接口机制——接口操作的编译器实现过程(1)
- ZEOSDBO+SQLite+Delphi7不常见异常信息的解决
- delphi 2010 导出sql server 数据到DBF乱码问题
- delphi IOS BLE 代理
- delphi BLE 后台
- Delphi IOS class_addMethod
- delphi下中文转UFT-8编码
- delphi IOS 后台状态保存
- delphi IOS 通知 TNotification