advstringgrid笔记
一下操作是在advstringgrid7.4.6.3版本下有效,advstringgrid控件名设置为 zy
一、属性设置
1.修改单元格内的值:zy.cells[col,row]='value';
2.设置字体:属性找到Font设置普通单元格内字体,Fixfont设置列行标题字体;
3.设置某单元格背景颜色,zy.Colors[acol,arow] := RGB(255,116,56);
4.设置某行字体zy.RowFontColor[i] := clred;
5.多行设置,属性Options内,gorowsizing=true,属性WordWarp=true,初始化zy后添加
zy.DefaultColWidth := 200;//某人列宽
zy.AutoSizeColumns(false,5);
zy.AutoSizeRows(false,5);
6.点击单元格后直接变成编辑状态:属性MouseActions内DirectEdit=true、CaretPositioning=True;
7.修改行高列高:Options-> goRowsizing=true、goColsizing=true;
8.设置成可编辑状态:Options->goEditing=true;
9.设置回车后向后、下移动单元格:属性Navigation下,AdvanceOnEnter:=true;
10.滚动条滚动到某格:ZY.ScrollInView(col,row,spMiddle);//(spMiddle 剧中, spTrailing 尾随不知道啥意思, spLeading 居首);
11.修改Options属性:zy.Options := zy.Options+ [goEditing];
12.CheckBox:ZY.AddCheckBoxColumn(3,false,false);//添加列 Zy.SetCheckBoxState(3,i,true);//设置为选中
c.GetCheckBoxState(3,i,cs);//获取选中状态 先定义:cs : TCheckBoxState;
if cs = cbChecked then
13.排序:很简单,属性 SortSetting->show=true;在cansort事件内设置列是否可以排序
二、事件说明
1、Onselectcell:选择单元格,可以设置某行、某列、某格是否可选
if acol in[0,1] then
canselect := false;
2.OnEditCellDone:单元格编辑结束后触发。
3.OnEndColumnSize\OnEndRowSize:改变列行宽度高度后触发,对应要进行zy.AutoSizeRows(false,5);zy.AutoSizeCols(false,5);
4.OnGetColumnFilter:过滤设置,首先将属性FilterDropDownAuto设置为True;
窗体初始化里面加入 zy.AutoFilterUpdate := true;
然后在给zy填充数据的地方设置zy.filter.clear;
然后在此事件内如下代码
if not (Column in[pcdmi,kldmi]) then
Filter.Clear;//设置哪下列有过滤
也可以添加新过滤
Filter.add('');
4.OnMouseMove:鼠标移动,配合zy.MouseToCell(x,y,cc,cr);注意cc,和cr是可写变量,cc,cr为x,y坐标得到的单元格行列。
5.OnGetEditType
procedure TFModify.xyspcjGetEditorType(Sender: TObject; ACol, ARow: Integer;
var AEditor: TEditorType);
begin
if (ARow = 2) and (ACol in [7,8,9,10,11,12,13,14,15,16,17]) then
begin
AEditor := edComboList;
xyspcj.ClearComboString;
xyspcj.AddComboString('A');
xyspcj.AddComboString('B');
xyspcj.AddComboString('C');
xyspcj.AddComboString('D');
xyspcj.AddComboString('E');
xyspcj.AddComboString('');
end;
end;