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 := to do //从设计时添加列比这方便
  begin
    with TStringColumn.Create(Self) do
    begin
      Parent := StringGrid1;
      Width := StringGrid1.ClientWidth / ;
    end;
  end;
  StringGrid1.RowCount := ;
  for c := to StringGrid1.ColumnCount - do
    for r := to StringGrid1.RowCount - 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;

Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid的更多相关文章

  1. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  2. Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit

    Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...

  3. Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox

    Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox TScrollBox -> TCustomListBox -> TListBox; 其元素项 ...

  4. Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo

    Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo 值得注意的变化: 1.其父类 TScrollBox 的许多特性也很有用处, 如:   Memo1.UseSma ...

  5. Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox、TVertScrollBox、TFramedScrollBox、TFramedVertScrollBox

    Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox.TVertScrollBox.TFramedScrollBox.TFramedVertScrollB ...

  6. Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu、TMenuItem、TMenuBar、TMainMenu

    Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu.TMenuItem.TMenuBar.TMainMenu 相关控件: TMenuBar.TPopup ...

  7. Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览

    Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public   constructor Create(...); ov ...

  8. Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm

    Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm 当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时 ...

  9. Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它

    Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它 TFmxObject 增加了 TagObject.TagFloat.TagString, 算 ...

随机推荐

  1. Apple历史应用以及开发工具版本(Xcode官方历史版本等等)

    1.Xcode 官方历史版本下载:(需要登录开发者账号) https://developer.apple.com/download/more/

  2. 3、sql 表的连接

    摘自: https://blog.csdn.net/holly2008/article/details/25704471 表连接分为:CROSS JOIN.INNERT JOIN.OUTER JOIN ...

  3. Win7 Linux双系统,恢复Linux启动项

    在一台电脑上安装Win7 Centos双系统,先安装Win,再安装Centos7.装完后,丢失Linux启动项. 恢复步骤,下载EasyBCD,添加新条目,操作系统选择Linux/BSD,类型选择GR ...

  4. valgrind 性能测试工具学习使用

    一.valgrind简介 Valgrind工具套件提供了许多调试和分析工具,可帮助您使程序更快,更正确.这些工具中最受欢迎的是Memcheck.它可以检测许多与C和C ++程序中常见的内存相关的错误, ...

  5. Spring MVC使用AOP实现审计日志

    先定一个注解,用于在Controller方法上记录每个方法的用途. package com.zjf.spring.annotation; import java.lang.annotation.Doc ...

  6. python路径拼接os.path.join()函数的用法

    os.path.join()函数:连接两个或更多的路径名组件 1.如果各组件名首字母不包含’/’,则函数会自动加上 2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃 3.如果最后一个组 ...

  7. 跨域 (3) window.name

    window对象有一个name属性,该属性有一个特征:即在一个窗口的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每一个页面对window.name都有读写的权限,window ...

  8. DevExpress WPF v19.1新版亮点:PDF Viewer等控件新功能

    行业领先的.NET界面控件DevExpress 日前正式发布v19.1版本,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WPF v19.1中新增的一些控件及部 ...

  9. oracle基本语句(第五章、数据库逻辑存储结构管理)

    1.使用SYS用户以SYSDBA身份登录到SQL Plus,使用视图V$TABLESPACE查看表空间信息 SELECT * FROM V$TABLESPACE; 2.查看视图DBA_TABLESPA ...

  10. tf.concat( )和tf.stack( )

    相同点:都是组合重构数据. 不同点:concat()不改变维数,而stack改变了维数(待定!!!) tf.concat是连接两个矩阵的操作,请注意API版本更改问题,相应参数也发生改变,具体查看AP ...