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

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

TStringGrid 测试:


  1. { 设计时放好 StringGrid1, 运行时填充数据 }
  2. procedure TForm1.FormCreate(Sender: TObject);
  3. var
  4.   i,c,r: Integer;
  5. begin
  6.   StringGrid1.AlternatingRowBackground := True;
  7.   StringGrid1.UseSmallScrollBars := True;
  8.   for i := to do //从设计时添加列比这方便
  9.   begin
  10.     with TStringColumn.Create(Self) do
  11.     begin
  12.       Parent := StringGrid1;
  13.       Width := StringGrid1.ClientWidth / ;
  14.     end;
  15.   end;
  16.   StringGrid1.RowCount := ;
  17.   for c := to StringGrid1.ColumnCount - do
  18.     for r := to StringGrid1.RowCount - do
  19.       StringGrid1.Cells[c, r] := Format('%d,%d', [c, r]);
  20. end;
  21.  
  22. { 取当前单元值 }
  23. procedure TForm1.Button1Click(Sender: TObject);
  24. begin
  25.   ShowMessage(StringGrid1.Cells[StringGrid1.ColumnIndex, StringGrid1.Selected]);
  26. end;

成员概览:

  1. { TCustomGrid }
  2. public
  3.   constructor Create(...); override;        //
  4.   destructor Destroy; override;            //
  5.   function ColumnByIndex(...): TColumn;    //根据索引获取列对象
  6.   function ColumnByPoint(...): TColumn;    //根据位置获取列对象
  7.   function RowByPoint(...): Integer;        //根据位置获取行号
  8.   procedure AddObject(...); override;      //
  9.   property TopRow: Integer ...;            //获取可见的首行的行号
  10.   property VisibleRows: Integer ...;        //获取可见的行总数
  11.   property ColumnCount: Integer ...;        //列数(也是只读)
  12.   property ColumnIndex: Integer ...;        //获取或设置列索引
  13.   property Columns[Index: Integer]: TColumn ...; //以数组索引的方式获取列对象
  14.   property RowCount: Integer ...;          //行数(可读写)
  15.   property Selected: Integer ...;          //当前行号
  16.   property OnGetValue: TOnGetValue ...;    //取值时
  17.   property OnSetValue: TOnSetValue ...;    //赋值时
  18. published
  19.   property StyleLookup;                    //
  20.   property AlternatingRowBackground: Boolean ...; //是否使用交替背景; 默认 False
  21.   property CanFocus default True;          //
  22.   property DisableFocusEffect default True; //是否取消焦点特效
  23.   property RowHeight: Single ...;          //行高
  24.   property ShowSelectedCell: Boolean ...;  //是否呈现单元选择效果; 默认 True
  25.   property ShowVertLines: Boolean ...;      //是否显示竖格线
  26.   property ShowHorzLines: Boolean ...;      //是否显示横格线
  27.   property ShowHeader: Boolean ...;        //是否显示表格头
  28.   property ReadOnly: Boolean ...;          //是否只读; 默认 False
  29.   property TabOrder;                        //
  30.   property OnEdititingDone: TOnEdititingDone ...; //输入时
  31. end;
  32.  
  33. { TGrid }
  34. TGrid = class(TCustomGrid)
  35. published
  36.   property RowCount;  //
  37.   property OnGetValue; //
  38.   property OnSetValue; //
  39. end;
  40.  
  41. { TStringGrid }
  42. public
  43.   property Cells[ACol, ARow: Integer]: string ...; //
  44. published
  45.   property RowCount;  //
  46. 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. 解决echarts内存泄露的问题

    clear方法和dispose方法 一种是调用clear方法,一种是dispose方法.第一种是清理echarts 但是不销毁实例.第二种是销毁实例,再次使用需要重新构建实例 1. var chart ...

  2. 68. Text Justification (JAVA)

    Given an array of words and a width maxWidth, format the text such that each line has exactly maxWid ...

  3. Apache ab测试工具使用方法(无参、get传参、post传参)(转)

    转自Apache ab测试工具使用方法(无参.get传参.post传参) Ab测试工具是apache自带的测试工具,具有简单易上手的特性,下面我总结一下我的使用方法,首先去官方下载apache程序包, ...

  4. python模块之导入包及模块发布

    1.导入包(不常用的方法) 在使用python的包时,有时候想直接导入包名,然后通过包名来调用模块,例如: temp为我们创建的一个包,如果我们想通过下面的方式进行导入模块中的方法,将会出错 impo ...

  5. urllib urllib2学习笔记

    Python的urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能.他们两个最显着的差异如下: urllib2可以接受一个Request对象,并以此可以来设置一个URL的h ...

  6. 用PS修改PNG格式图标的颜色

    需求:将黑色的PNG格式图标,更改为其它颜色 原始图标:   原始图标 - 黑色   方法1: 图层样式 -> 颜色叠加     选择颜色叠加     选择想要的颜色   方法2: 更换颜色 一 ...

  7. exe远程注入线程xp

    进程删除不了 某目录下txt ini config 无法修改

  8. 乐观锁和 MVCC 的区别?

    二者不是一个层面的东西. MVCC(Multi-Version Concurrent Control),基于快照隔离机制(Snapshot Isolations)进行多版本并发控制,是一种以乐观锁为理 ...

  9. H5开发获取微信系统的地址列表

    前段时间做了H5开发的项目,需要是要把微信系统自带的地址也给添加进来,意识也就是说用户可以选择项目的地址和微信自带的地址  效果图是这样的: 对就是这个需求 下面给出H5 页面下的微信添加HTML 然 ...

  10. 集合综合练习<二>

    package com.JiHeTotal; import java.util.Map; public class Student { int id; String name; Map<Stri ...