TScrollBox 是不少控件(TMemo、TListBox、TStringGrid、TTreeView、TImageViewer 等)的基础, 所以先学.
TVertScrollBox 只比 TScrollBox 少了竖滚动条.
TFramedScrollBox、TFramedVertScrollBox 只是套用了不同的样式, 有可视的框架.
1{ TScrollBox } 2public 3 constructor Create(...); override; // 4 destructor Destroy; override; // 5 procedure AddObject(...); override; // 6 procedure Sort(...); override; //根据指定的排序函数给内部对象排序 7 procedure MouseDown(...); override; // 8 procedure MouseMove(...); override; // 9 procedure MouseUp(...); override; // 10 procedure MouseWheel(...); override; // 11 procedure Realign; override; // 12 procedure Centre; //滚动到中间位置 13 procedure ScrollTo(...); //滚动指定的距离 14 procedure InViewRect(...); //暂未实现 15 function ClientWidth: Single; //客户区宽度 16 function ClientHeight: Single; //客户区高度 17 property HScrollBar: TScrollBar ...; //横滚动条对象 18 property VScrollBar: TScrollBar ...; //竖滚动条对象 19published 20 property AutoHide: Boolean ...; //是否根据需要自动隐藏或显示滚动条; 默认 True 21 property Animated: Boolean ...; //是否使用滚动动画; 默认 True 22 property DisableMouseWheel: Boolean ...; //是否禁用鼠标滚动轮; 默认 False, 未禁用 23 property MouseTracking: Boolean ...; //能否用鼠标直接拖动(拖到控件, 滚动条联动); 默认 False 24 property ShowScrollBars: Boolean ...; //是否显示滚动条; 默认 True 25 property ShowSizeGrip: Boolean ...; //是否显示 Grip(右下角的拖拽标识); 默认 False 26 property UseSmallScrollBars: Boolean ...; //是否使用小的滚动条 27end;
示例:
1uses FMX.Layouts, FMX.Objects; 2 3var 4 ScrollBox1: TScrollBox; 5 Rectangle1: TRectangle; 6 7procedure TForm1.FormCreate(Sender: TObject); 8begin 9 ScrollBox1 := TScrollBox.Create(Self); 10 ScrollBox1.Parent := Self; 11 ScrollBox1.Align := TAlignLayout.alClient; 12 ScrollBox1.MouseTracking := True; 13 14 Rectangle1 := TRectangle.Create(Self); 15 Rectangle1.Parent := ScrollBox1; 16 Rectangle1.SetBounds(100, 100, ClientWidth*2, ClientHeight*2); 17end;