文档章节

Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 470
阅读 25
收藏 0

TStringGrid、TGrid 都是从 TCustomGrid 继承; 区别有:
1、它们的列对象分别是: TStringColumn、TColumn;
2、TStringGrid 比 TGrid 多出了 Cells[] 属性.

因为 TGrid 没有 Cells[] 属性, 暂时不方便使用; 我尝试取其当前单元值时竟然用了这样的代码:
(Grid1.Columns[Grid1.ColumnIndex].CellControlByRow(Grid1.Selected) as TTextCell).Text

TStringGrid 测试:

{ 设计时放好 StringGrid1, 运行时填充数据 }
procedure TForm1.FormCreate(Sender: TObject);
var
  i,c,r: Integer;
begin
  StringGrid1.AlternatingRowBackground := True;
  StringGrid1.UseSmallScrollBars := True;
  for i := 0 to 5 do //从设计时添加列比这方便
  begin
    with TStringColumn.Create(Self) do
    begin
      Parent := StringGrid1;
      Width := StringGrid1.ClientWidth / 6;
    end;
  end;
  StringGrid1.RowCount := 20;
  for c := 0 to StringGrid1.ColumnCount - 1 do
    for r := 0 to StringGrid1.RowCount - 1 do
      StringGrid1.Cells[c, r] := Format('%d,%d', [c, r]);
end;

{ 取当前单元值 }
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(StringGrid1.Cells[StringGrid1.ColumnIndex, StringGrid1.Selected]);
end;


成员概览:

{ TCustomGrid }
public
  constructor Create(...); override;        //
  destructor Destroy; override;             //
  function ColumnByIndex(...): TColumn;     //根据索引获取列对象
  function ColumnByPoint(...): TColumn;     //根据位置获取列对象
  function RowByPoint(...): Integer;        //根据位置获取行号
  procedure AddObject(...); override;       //
  property TopRow: Integer ...;             //获取可见的首行的行号
  property VisibleRows: Integer ...;        //获取可见的行总数
  property ColumnCount: Integer ...;        //列数(也是只读)
  property ColumnIndex: Integer ...;        //获取或设置列索引
  property Columns[Index: Integer]: TColumn ...; //以数组索引的方式获取列对象
  property RowCount: Integer ...;           //行数(可读写)
  property Selected: Integer ...;           //当前行号
  property OnGetValue: TOnGetValue ...;     //取值时
  property OnSetValue: TOnSetValue ...;     //赋值时
published
  property StyleLookup;                     //
  property AlternatingRowBackground: Boolean ...; //是否使用交替背景; 默认 False
  property CanFocus default True;           //
  property DisableFocusEffect default True; //是否取消焦点特效
  property RowHeight: Single ...;           //行高
  property ShowSelectedCell: Boolean ...;   //是否呈现单元选择效果; 默认 True
  property ShowVertLines: Boolean ...;      //是否显示竖格线
  property ShowHorzLines: Boolean ...;      //是否显示横格线
  property ShowHeader: Boolean ...;         //是否显示表格头
  property ReadOnly: Boolean ...;           //是否只读; 默认 False
  property TabOrder;                        //
  property OnEdititingDone: TOnEdititingDone ...; //输入时
end;

{ TGrid }
TGrid = class(TCustomGrid)
published
  property RowCount;   //
  property OnGetValue; //
  property OnSetValue; //
end;

{ TStringGrid }
public
  property Cells[ACol, ARow: Integer]: string ...; //
published
  property RowCount;   //
end;

本文转载自:http://www.cnblogs.com/del/archive/2011/10/09/2203198.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
Delphi XE2:这就是我们所期待的Delphi吗?

版权声明:本文为 OSChina.NET 原创编译 转载务必注明出处,并保留链接! 作者:蒂姆.安德森 Delphi是被一些人遗忘了的快速应用程序开发工具,但它与可视组件库相结合,依然是开发Windows本机...

虫虫
2011/10/31
40.7K
49
最全面的常用Delphi第三方控件汇总—报表、图表、界面、数据库等

有网友问我常用Delphi第三方控件及功能。我先大概整理一下,以后会在文章里面碰到时再仔细介绍。 报表图表方面: TeeChart Pro 在delphi 的图形显示方面目前唯一的选择,虽然从delphi 3 就随...

Leamontea
2012/12/03
0
2
Delphi XE2 新功能:LiveBindings --- 把对象之间的属性绑定起来

Delphi XE2 新功能:LiveBindings --- 把对象之间的属性绑定起来日期:2011年9月9日 作者: 人气:5340 查看:[大字体 中字体 小字体] XE2 有了 FireMonkey 框架,它不同于 VCL ,以往的数据感...

vga
2016/08/09
17
0
使用 Delphi 开发移动应用

引言 现在移动设备的发展现在变成了趋势. 我们可以考虑本地语言开发 (例如ObjectiveC for IOS或 Java for Android), 但通常对新开发者的学习代价高. 另一个选择是第三方代理 (例如Titanium,...

oschina
2012/12/11
10.3K
21
PostgreDAC 2.8.0,Delphi的PostgreSQL组件

PostgreDAC 2.8.0 发布了,该版本首次通过 RAD Studio XE2 支持 Mac OS X 系统,大大提升了 FireMonkey 支持,修复了关于 TPSQLMonitor 的 bug。 完整改进记录: [!] FireMonkey and cross p...

红薯
2012/03/20
675
1

没有更多内容

加载失败,请刷新页面

加载更多

MicroStation Developer Shell

REG ADD HKLM\SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS /v ProductDir /t REG_SZ /d "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\" /reg:32 CALL "C:\Program Files (x86)\......

oready
14分钟前
1
0
CURL常用命令

下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://www.centos.org 通过-o/-O选项保存下载的文件到指定的文件中: -o:将文件保存为命令行中指定的文件名的文件中 -O:使用U...

SuShine
19分钟前
1
0
docker搞个wordpress

1.先把wordpress的镜像下载下来 docker pull wordpress 2.下载mysql docker pull mysql:lastest 3.启动mysql docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:t......

无极之岚
30分钟前
2
0
【宇润日常疯测-005】PHP 中的 clone 和 new 性能比较

clone和new本不应该放在一起比较,它们的作用是不同的。但可能有一些场景下,可以用clone也可以用new,那么这时候我们选哪个呢? 我编写了两个测试,第一个是声明一个空类,第二个是带构造方...

宇润
31分钟前
2
1
点击按钮弹出类似IOS 底部 dialog

implementation 'com.baoyz.actionsheet:library:1.1.7' 然后设置按钮点击监听,,调用下列代码即可 ActionSheet.createBuilder(this, getSupportFragmentManager()) ......

lanyu96
34分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部