advstringgrid 使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

advstringgrid 使用

TAdvStringGrid是Delphi编程中常用的控件,经常用于统计数据和设计比较复杂的表格。控件功能很强大,但相应的使用也很复杂!

以下是我整理出的常用技巧,有一部分是我自己的经验,有一部分是网上搜的别人的总结,有一部分整理了,有一部分没有整理;有一部分测试了,有一部分没有经过测试~~~

呵呵,但都是我手工编辑的啊~~。(部分示例过程是用于创

建和设置动态Cells的过程,如果不理解请参考我总结的另

一篇文章<完美动态TAdvStringGrid(cells)一例>) 常用属性设置

---

Options—goEditing:是否可以编辑

Options—goTabs:控制是否可用TAB键将光标移到下一CELL

Option—goColSizing/RowSizing=true:设置列宽/行高可调整

Navigation—AlwaysEdi=true:进入单元格时自动变成

编辑状态

Navigation—AdvanceOnEnter=true:回车时自动移到

下一个CELL

Navigation—AdvancelInsert:控制当光标在最后一个CELL时是否可以按回车插入新行

Navigation—AllowDeleteRow:控制是否按DELETE键

删除当前行

Navigation—AppendOnArrowDown:控制按下箭头是否可以新增一行(未找到这个属性)

MouseActions—RowSelect/ColSelect=true :选择整行/选择整列

Navigation—AutoComboDropSize=true组合框下拉框

展开宽度自动设置

MouseActions—DirectComboDrop=True组合框进入

时自动展开

(点击鼠标时直接进入编辑,或允许、不允许改变行或列宽等特性,都可以在MouseActions中设置。)

AutoNumAlign:=True则数字类型数据在CELL里会自

动右对齐

AutoNumberCol(n);自动在第n列按顺序显示数字,即1,2,3……

AutoSize:=true :自动设置列宽,不推荐使用,自动调整后,真的很难看。

EnableWheel:=true :一次滚动多行,EnableWheel:=False时,一次滚动一行。

SearchFooter—Visible:=TRUE时,会在ADVStringGrid 的底部显示出搜索框(未找到属性)

FloatingFooter—Visible:为TRUE时,即在ADVStringGrid底部显示求和列,要想让求和列显示小数,还需要将FloatFormat属性设置为:%g(未找到属性) (自动换行到新追回行:必须在onCellValidate过程中执行strGrid.AddRow;可以同时加一些赋值语句。) (当合并行后,如果想使文字垂直居中,可以先设置ADVStringGrid的MultilineCells 设置为True,然后在文字前面加#13 换行来实行)

(改变固定列的显示样式:ControlLook——FixedGradientFrom(起始色)——FixedGradientFrom(结束色)

+++

用过程设置相关属性

---

1,设定单元表各列是否可以编辑: 首先在设置属性:Options—goEditing=true;然后,在CanEditCell事件中设定。

procedure TForm50.stgPartListCanEditCell(Sender: TObject; ARow, ACol: Integer; var CanEdit: Boolean);

Var

I:integer;

begin

if (stgPartList.cells[cC1Data_Flag,ARow]='') or (stgPartList.cells[cC1Data_Flag,ARow]='C') then begin

canEdit:=false;

exit;

end else begin

for I:=0 to cColQty1 do begin

if ACol=I then begin

if

stgPartList.cells[cC1Data_Flag,aRow]='C' then CanEdit:=false

else begin

if cColProp1[I,1]='Y' then CanEdit:=true; //cColProp1:列属性数组,下同

if cColProp1[I,1]='N' then CanEdit:=False;

end;

end;

end;

end;

end;

2,设定单元表各列对齐方式: 在GetAlignment事件中设定。

procedure TForm1.strGrid1GetAlignment(Sender: TObject; ARow, ACol: Integer; var AAlignment: TAlignment);

Var

I:integer;

begin

//直接定义

{if ARow=0 then AAlignment:=tacenter

else begin

case ACol of

0: AAlignment:=taRightJustify;

1: AAlignment:=taCenter;

//2: AAlignment:=taCenter;

3: AAlignment:=taRightJustify;

4: AAlignment:=taCenter;

6: AAlignment:=taCenter;

8: AAlignment:=taCenter;

9: AAlignment:=taCenter;

else AAlignment:=taLeftJustify;

end;

相关文档
最新文档