1、AdvStringGrid做多表头
在onIsFixedCell事件中返回true的就是表头
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
procedure TForm1.FormCreate(Sender: TObject);
begin
AdvStringGrid1.FixedRows:=2;
AdvStringGrid1.SaveFixedCells := false;
AdvStringGrid1.MergeCells(1,0,2,1);
AdvStringGrid1.MergeCells(3,0,2,1);
AdvStringGrid1.Cells[1,0] := '<p align="center"> <b>Identification</b></p>';
AdvStringGrid1.Cells[1,1] := 'Brand';
AdvStringGrid1.Cells[2,1] := 'Type';
AdvStringGrid1.Cells[3,1] := 'CC';
AdvStringGrid1.Cells[4,1] := 'Pk';
AdvStringGrid1.Cells[3,0] := '<p align="center"><b>Power</b></p>';
AdvStringGrid1.BtnEdit.ButtonWidth := 24;
end;
--------------------------------------------------------------------
2、怎样实现AdvStringGrid的列宽自动按内容调整?
autosize,可以根据内容调整列宽。
自动按标题列调整,自己在其RESIZE事件里对COLWIDTHS[I]赋值就行了。
procedure AutoSizeColumns(const DoFixedCols: Boolean; const Padding: Integer);
例:AdvStringGrid1.AutoSizeColumns(False,16);
AdvStringGrid1.AutoSizeColumns(False,16);
第一参数:是否为固定列;第二个参数,文字后面留的空格数
所有单元格自动调整,由第一个参数设置是否含固定单元,
如要固定行折行显示应将其行高设为自动调整即:
AdvStringGrid1.AutoSizeRow(0);
---------------------------------------------------------------------
3、AdvStringGrid插入checkbox列
---------------------------------------------------------------------
4、stringGrid中的行或列和并
5、
with advStringGrid1 do
MergeCells(0,0,1,3);
//合并单元格.前两参数为列数行数. 后两参数分别为要合并的列数和行数
Cells[1,0] := Format('分度线( %s )',[m_sMeasureRangeUnit]);;
前面是我在程序中拉的一段.
控件常用事件:
//单元格可否被修改
onCanEditCell(Sender: TObject; ARow,
begin
end;
//对齐方式
onGetAlignment(Sender: TObject; ARow,
begin
end;
//是否固定列 ,即标题列, 在表中非开头行需要固定标题列时很有用
onIsFixedCell(Sender: TObject; ARow,
begin
end;
-------------------------------------------------------------------------------
6、如何在AdvStringGrid中为每个单元格内的字体定制颜色
在OnDrawCell事件(看名字这个控件应该有这个事件把,呵呵!)写如下代码:
(Sender as TAdvStringGrid).Canvas.Font.Color:=clNavy;
7、cell中内嵌combobox
OnGetEditorType事件