StringGrid类详解

事件句柄
1.StringGrid1GetEditText(Sender: TObject; ACol, ARow: Integer; var Value: string);
Options.goEditing = true才能触发此事件。此事件在单元格进入可编辑状态时触发。参数ACol,ARow为当前单元格的列号和行号(列号和行号都按顺序从0开始编码)。参数Value为当前单元格中的内容。
2.StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer; var Value: string);Options.goEditing = true才能触发此事件。此事件在单元格进入可编辑状态时触发。参数ACol,ARow为当前单元格的列号和行号(。参数Value内容未深入了解,不详。
3.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
选择单元格时触发。参数ACol,ARow为当前单元格的列号和行号。参数CanSelect默认值True,设置为False时,控制焦点不能移出当前单元格。
4.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string);
触发此事件的现象有多种情况。单元格内容变更时触发。单元格编辑状态撤销时触发。当单元格内容变更时,参数ACol,ARow为当前单元格的列号和行号,参数Valuet为当前输入的内容。当单元格是从编辑状态撤出时。参数ACol,ARow为撤出前的单元格的列号和行号,参数Valuet为单元格撤出前的内容。
另,焦点直接移出StringGrid1时又不触发。
5.StringGrid1TopLeftChanged(Sender: TObject)
滚动条滚动时,StringGrid1的可视区域发生变化时触发。在StringGrid1.LeftCol或者StringGrid1.TopRow属性值变化时触发。StringGrid1的可视区域发生变化,这2个属性值会自动改变。
6.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
单元格重画时触发,很多操作都会触发此事件,此事件触发频率很高,不适宜在此句柄做复杂处理。编辑单元格内容时不会触发。
7.方法&属性
总列数:StringGrid1.ColCount;
总行数:StringGrid1.RowCount;
固定列数:StringGrid1.FixedCols;
固定行数:StringGrid1.FixedRows;
当期活动单元格列号:StringGrid1.Col;
当期活动单元格行号:StringGrid1.Row;
访问ACol列ARow行单元格内容:StringGrid1.Cells[ACol, ARow];
可见区域左边可视的第一列序号:StringGrid1.LeftCol;排除固定列。
可见区域上边可视的第一行序号:StringGrid1.TopRow;排除固定列。
Options.goEditing属性控制列是否可以编辑。 //OnSelectCell句柄中动态设置可编辑列的方法。
if ACol in [StringGrid1.FixedCols..StringGrid1.ColCount-1] then
StringGrid1.Options := StringGrid1.Options + [goEditing]
else
StringGrid1.Options := StringGrid1.Options - [goEditing];
StringGrid1.Objects[ACol, ARow] 可用于存储各种对象,方便处理时使用。
当前活动单元格的LEFT值:StringGrid1.CellRect(StringGrid1.Col,StringGrid1.Row).Left;
当前活动单元格的Top值:StringGrid1.CellRect(StringGrid1.Col,StringGrid1.Row).Top;
当前活动单元格的列宽度值:StringGrid1.ColWidths[StringGrid1.Col];
当前活动单元格的行高度值:StringGrid1.RowHeights[StringGrid1.Row];


你可能感兴趣的:(String)