TeeGrid VCL/FMX
Steema TeeGrid VCL/FMX
简单概述
轻量及全功能网格控件
2016年写自于草稿的网格控件(非TCustomGrid 或TGrid),利用Delphi中一切稳固的东西!
跨平台
TeeGrid与VCL及FML完全兼容,为您提供适用于Windows、Android及iOS/MacOS网格的共同核心代码。TeeGrid推送一些默认主题来任意自定义匹配每一环境。
断续器
TeeGrid“断续器”组成部分在值更新时自动刷新网格。VCL、Firemonkey及Lzarus。Delphi及C++,2009至Berlin。
选择包括FadeColors、Delay、Higher.Color、Lower.Color 及 RefreshSpeed。
特征
新功能和改进功能
IDE支持
全面支持Embarcadero RAD Studio,Delphi和C ++ Builder,包括:2009年,2010年,XE,XE2,XE3,XE4,XE5,XE6,XE7,XE8,10西雅图10.1柏林10.1柏林更新2,10.2东京和Firemonkey框架和拉撒路FreePascal。
(*)TeeGrid不支持Delphi / C ++ Builder入门版。
巨大的数据
TeeGrid能够处理大量的单元。例如10亿个单元(1000列乘100万行)。
唯一的限制是可用的内存,(为64位平台编译)。
虚拟数据
TVirtualData或派生类自动创建列并提供单元格值。
TStringGrid仿真
TeeGrid可以像使用TStringsData对象的TStringGrid一样使用:
var Data:TStringsData;
数据:= TStringsData.Create;
//初始化大小
Data.Columns:= 2;
Data.Rows:= 6;
//设置标题文本
Data.Headers [0]:='A';
Data.Headers [1]:='B';
//填充行和单元格
数据[0,0]:='A0';
数据[1,0]:='B0';
//将数据设置为网格
TeeGrid1.Data:=Data;
子列(任何列都可以有子列)
TeeGrid1.Columns.AddColumn('My Column 1')。Items.AddColumn('Sub-Column 1')...
每列格式(字体,背部填充,描边,文本对齐)
TeeGrid1.Columns [3] .Format.Font.Size:= 14;
单个行高(每行自定义高度)
TeeGrid1.Rows.Heights [3]:= 50;
行组
任何行都可以展开以显示其细节子网格行。网格数据类必须支持主从关系。
提供TBIGridData类以链接支持主 - 细节的TeeBI TDataItem数据对象请参阅“TeeBI_Customer_Orders”示例。
总计和小计
自动摘要“网格带”可以添加到页眉或页脚,也可以添加到“细节”子网格。
var Totals : TColumnTotals;
Totals:= TColumnTotals.From(TeeGrid1.Data, TeeGrid1.Columns);
Totals.Calculation.Add( TeeGrid1.Columns['Quantity'], TColumnCalculation.Sum);
// Add band to grid footer
TeeGrid1.Footer.Add(Totals);
// Add also a band with total names
TeeGrid1.Footer.Add( TTotalsHeader.CreateTotals( Totals ) );
行“子带”
任何行都可能在行上显示一个网格带。 “带”可以是任何东西,从简单的TTitle带到复杂的带或行组。
var Title: TTitleBand;
Title:= TTitleBand.Create;
Title.Text:='My Rows';
TeeGrid1.Rows.SubBands[23]:= Title;
定制单元格渲染
单元渲染的默认类是TCellRender。可以使用或创建其他类来覆盖默认行为,例如显示具有布尔(True / False)值的列中的复选框:
TeeGrid1.Columns [7] .Render:= TBooleanRender.Create;
单元格文本格式(float,日期时间格式化字符串)
TeeGrid1.Columns [0] .FloatFormat:='0。###';
列可见和扩展(对于子列)
TeeGrid1.Columns[0].Visible:= False;
TeeGrid1.Columns[0].Items[3].Expanded:= False; // visible, but collapsed
自动列宽(或固定值,以像素或网格宽度的百分比表示)
TeeGrid1.Columns [0] .Width.Automatic:= False;
TeeGrid1.Columns [0] .Width.Value:= 40;
TeeGrid1.Columns [0] .Width.Units:= TSizeUnits.Percent;
列鼠标拖动调整大小
在列标题边缘中拖动鼠标左键来调整它的大小
自动滚动条可见性
必要时滚动条会自动显示。在Firemonkey中,他们可以自定义:
TeeGrid1.ScrollBars.Vertical.Width:= 50;
列排序
列和子列可以重新定位:
TeeGrid1.Columns [2] .Index:= 0; //将第二列移到第一个(最左边)位置
网格标题格式(字体,回填,笔画)
TeeGrid1.Columns[0].Header.Text:= 'My Column';
TeeGrid1.Columns[0].Header.Format.Font.Color:= TAlphaColors.Red;
网格标题鼠标悬停
TeeGrid1.Header.Hover.Visible:= True;
TeeGrid1.Header.Hover.Format.Brush.Color:= TAlphaColors.Green;
网格“指标”列(带当前行符号的最左边一列)
TeeGrid1.Indicator.Visible:= True; //错误隐藏指示器
TeeGrid1.Indicator.Width:= 20;
行突出显示(鼠标悬停和选定的行格式)
// selection
TeeGrid1.Selected.Column:= TeeGrid1.Columns[3];
TeeGrid1.Selected.Row:= 5;
// formatting
TeeGrid1.Selected.ParentFont:= False;
TeeGrid1.Selected.Format.Font.Style:= [TFontStyle.fsBold];
多单元格范围选择(通过鼠标和箭头键)
// range selection
TeeGrid1.Selected.Range.FromColumn:= TeeGrid1.Columns[3];
TeeGrid1.Selected.Range.ToColumn:= TeeGrid1.Columns[6];
TeeGrid1.Selected.Range.FromRow:= 10;
TeeGrid1.Selected.Range.ToRow:= 15;
将所选单元格以CSV格式复制到剪贴板,按Ctrl + C或Ctrl + Insert键,也可通过代码:
Clipboard.AsText:= TCSVData.From(TeeGrid1.Grid,TeeGrid1.Selected);
全选行高亮
TeeGrid1.Selected.FullRow:= TRUE;
网格和列ReadOnly
TeeGrid1.ReadOnly:= False;
TeeGrid1.Columns [0] .ReadOnly:= True;
定制网格编辑器
TeeGrid1.Columns [1] .EditorClass:= TCalendarEditor;
行和列行分隔符(笔划设置)
TeeGrid1.Rows.RowLines.Visible:= True;
TeeGrid1.Rows.RowLines.Size:= 3;
TeeGrid1.Rows.RowLines.Color:= TAlphaColors.Skyblue;
鼠标悬停(鼠标光标下的高亮单元格)
鼠标光标下的单元格(或行中的所有单元格)可以高亮显示:
TeeGrid1.Cells.Hover.Visible:= True;
TeeGrid1.Cells.Hover.FullRow:= True;
TeeGrid1.Cells.Hover.Format.Stroke.Size:= 2;
所有的坐标都是浮点数
对于亚像素微调,仅限Firemonkey。 VCL总是四舍五入为整数像素。
TeeGrid1.Header.Height.Automatic:= FALSE;
TeeGrid1.Header.Height.Value:= 124.3; //子像素,小数
备用行背景填充(后刷,笔画设置)
TeeGrid1.Rows.Alternate.Brush.Visible:= True;
TeeGrid1.Rows.Alternate.Brush.Color:= TAlphaColors.Lightcoral;
TeeGrid1.Rows.Alternate.Stroke.Visible:= True;