AdvStringGrid使用方法(2)

C++ Builder XE AdvStringGrid的表格画线显示隐藏经典实例 阅读详情
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.   AdvStringGrid1.FixedRows:=2;
  4.   AdvStringGrid1.SaveFixedCells := false;
  5.   AdvStringGrid1.MergeCells(1,0,2,1);
  6.   AdvStringGrid1.MergeCells(3,0,2,1);
  7.   AdvStringGrid1.Cells[1,0] := '<p align="center"> <b>Identification</b></p>';
  8.   AdvStringGrid1.Cells[1,1] := 'Brand';
  9.   AdvStringGrid1.Cells[2,1] := 'Type';
  10.   AdvStringGrid1.Cells[3,1] := 'CC';
  11.   AdvStringGrid1.Cells[4,1] := 'Pk';
  12.   AdvStringGrid1.Cells[3,0] := '<p align="center"><b>Power</b></p>';
  13.   AdvStringGrid1.BtnEdit.ButtonWidth := 24;
  14. end;
 一、Navigation——AdvancelInsert:控制当光标在最后一个CELL时是否可以按回车插入新行

二、Navigation——AdvanceOnEnter:控制按回车是否自动移到下一个CELL

三、Navigation——AllowDeleteRow:控制是否按DELETE键删除当前行

四、Navigation——AppendOnArrowDown:控制按下箭头是否可以新增一行

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

六、SearchFooter—Visible:=TRUE时,会在ADVStringGrid的底部显示出搜索框

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

八、AutoNumAlign:=True则数字类型数据在CELL里会自动右对齐

九、ADVStringGrid.AutoNumberCol(0);表示第0列按顺序显示数字,即1,2,3……

十、FloatingFooter—Visible:为TRUE时,即在ADVStringGrid底部显示求和列,要想让求和列显示小数,还需要将FloatFormat属性设置为:%g

十一、当合并行后,如果想使文字垂直居中,可以先设置ADVStringGrid的 MultilineCells 设置为 True,然后在文字前面加 #13 换行来实行

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

十三、改变单元格的背景色,可在OnGetCellColor事件中写代码实行(前提需将FLAT设置为TRUE):

  1. procedure Tfrm_dingdan.strgridGetCellColor(Sender: TObject; ARow, 
  2.   ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont); 
  3. begin 
  4.   if ARow=0 then     //如果不加这一句,则是以下对应的整列,我这里是只改变固列,所以要把ARow设为0 
  5.     begin 
  6.       Case ACol of 
  7.         1: ABrush.Color:=RGB(227,249,248); 
  8.         2: ABrush.Color:=RGB(250,232,193); 
  9.         3: ABrush.Color:=RGB(227,249,248); 
  10.         4: ABrush.Color:=RGB(250,232,193); 
  11.         12: ABrush.Color:=RGB(227,249,248); 
  12.         14: ABrush.Color:=RGB(250,232,193); 
  13.         24: ABrush.Color:=RGB(227,249,248); 
  14.         48: ABrush.Color:=RGB(250,232,193); 
  15.         51: ABrush.Color:=RGB(227,249,248); 
  16.       End; 
  17.     END; 
  18. end; 

十四、如果在录入的过程中,要对某列做格式化,比如保留几位小数,可用ADVStringGrid的GetFloatFormat事件中操作。比如:

  1. procedure Tfrm_dingdan.strgridGetFloatFormat(Sender: TObject; ACol, 
  2.   ARow: Integer; var IsFloat: Boolean; var FloatFormat: String); 
  3. begin 
  4.   case ACol of 
  5.     4: floatformat:='%.0f';     //第4列保留0位小数 
  6.     5: floatformat:='%.3f';     //第5列保留3位小数 
  7.     6: floatformat:='%.6f';    //第6列保留6位小数 
  8.     7: floatformat:='%.5f';    //第7列保留5位小数 
  9.   end; 
  10. end;

十五、Options—goRangeSelect:控制是否可以选择多行,goRowSelect控制选中整行

、AdvStringGrid做多表头
在onIsFixedCell事件中返回true的就是表头

--------------------------------------------------------------------
2、怎样实现AdvStringGrid的列宽自动按内容调整?
   怎样实现AdvStringGrid的列宽自动按列标题宽度调整?
   autosize属性的作用是什么?
  
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列
 把advstringgrid的option属性中的goEditing 设为true
 
 在from create事件中加入
 

  1.  for i:=1 to advstringgrid.rowcount-1 do
  2.     advstringgrid.AddCheckBox(1,i,false,false);   //其中1表示所在列数
  3.    GetCheckBoxState(col,row) 可以查询的
  4.    Bchek:Boolean;
  5.    AdvSGrid.GetCheckBoxState(Col,Arow,Bchek);

---------------------------------------------------------------------
4、stringGrid中的行或列和并
 

  1.   grdList.MergeCells(0,0,2,2);
  2.    grdList.Cells[0,0]:='123456';
  3.    advstringgrid.mergecol(3,4);
  4.    advstringgrid..MergeCells(0,0,2,2);

5、  
with advStringGrid1 do   //引用单元格时, 列数在前,行数在后.
MergeCells(0,0,1,3);   
//合并单元格.前两参数为列数行数. 后两参数分别为要合并的列数和行数
Cells[1,0] := Format('分度线( %s )',[m_sMeasureRangeUnit]);;

          MergeCells(3,JieDianStart - 1,1,1);
          Cells[3,JieDianStart - 1] := '动作方式';
          ColWidths[3] := ColWidths[3] + 10;
          Colors[3,JieDianStart - 1] := FixedColor;
          FontNames[3,JieDianStart - 1] := FixedFont.Name;
          FontSizes[3,JieDianStart - 1] := FixedFont.Size;
          FontStyles[3,JieDianStart - 1] := FixedFont.Style;


前面是我在程序中拉的一段.
控件常用事件:
//单元格可否被修改
onCanEditCell(Sender: TObject; ARow,  ACol: Integer; var CanEdit: Boolean);
begin
  if ACol = 0 then
    CanEdit := false;  //false不能修改
end;

//对齐方式
onGetAlignment(Sender: TObject; ARow,
  ACol: Integer; var HAlign: TAlignment; var VAlign: TVAlignment);
begin
     HAlign := taCenter;
     VAlign := vtaCenter;
end;
//是否固定列 ,即标题列, 在表中非开头行需要固定标题列时很有用
onIsFixedCell(Sender: TObject; ARow,
  ACol: Integer; var IsFixed: Boolean);
begin
     if(ARow = 10) then
     begin
          IsFixed := True;
     end;
end;
-------------------------------------------------------------------------------
6、如何在AdvStringGrid中为每个单元格内的字体定制颜色
在OnDrawCell事件(看名字这个控件应该有这个事件把,呵呵!)写如下代码:
(Sender as TAdvStringGrid).Canvas.Font.Color:=clNavy;
7、cell中内嵌combobox
OnGetEditorType事件
  if ACol = 1 then
  begin
        aEditor := edComboList;
        grdMain.ClearComboString;
        grdMain.AddComboString('借');
        grdMain.AddComboString('  贷');
  end;

DELPHI中利用AdvStringGrid往数据库中导入数据出现的问题 最近客户需要往数据库中导入数据,直接通过AdvStringGrid导入是比较简单的,后来发现了一个问题,如果数据库中已经存在的数据,那么在导入进去,岂不是重复了?特别是那个表如果是基础表,正好你导入的时候,有数据需要和那两个相同的数据关联,而且用的不是主键,问题岂不是打了,就写了如下的代码:procedure TForm1.ToolButton2Click(Sender: TObject) 阅读详情

相关推荐

delphi advstringgrid 表格中加checkbox

读取,设置checkbox,全选,反选。

全粘工程师 597

Delphi / XE10 StringGrid 实现合并单元格效果显示

StringGrid控件中实现显示Excel形式的合并单元格效果,也可以用AdvStringGrid,XLGRID等第三方控件,不过要破解比较麻烦。 原理是通过重载 OnDrawCell 事件procedure TForm1.SGDrawCell(Sender: TObject; ACol, ARow: Integer;Rect: TRect; State: TGridDrawState);来实现重新显示改变设计好的格式效果...

Delphi开发者必备:Adv StringGrid控件详细介绍

Delphi作为一款流行的快速应用开发工具,其报表控件功能一直是开发者们关注的焦点。在本章中,我们将介绍Delphi的报表控件的基本概念、功能以及如何高效使用它们。Delphi报表控件是用于创建报表的组件集合,它支持数据的展示、编辑以及复杂的布局管理,对数据进行可视化表达。利用Delphi报表控件,开发者可以快速生成多样化的报表,从而帮助业务分析与决策制定。Delphi报表控件套件中包含了一系列组件,例如:QuickRepStringGrid等,每个组件都针对特定类型的报表提供了优化。

weixin_42143092的博客 1208

AdvStringGrid任意列筛选过滤

{对AdvStringGrid任意列筛选过滤 过滤条件: 大于任意值:'>100' 不小于任意值:'>=100' 等于任意值:'=100' 介于两数之间:'10,100'//两个数之间 等于某字符:'=某字符' 包含某字符:'*某字符*' 不包含某字符:'*某字符*' 开始字符:'始*' 结尾字符:'*尾' }

AdvStringGrid常用操作

(1)如何设置表格固定的列数,如下图所示: AdvStringGrid使用小结 这里固定的列数为3列,通过设置下面属性来改变固定的列数: AdvStringGrid.FixedCols:=n;(n为要固定的列数值) (2)如何从AdvStringGrid中读取和向AdvStringGrid中导入值: AdvStringGrid.Cells[j,i]:=str;(向其单元格赋值)这里需要注意的是,j...

展翅飞翔 1833

AdvStringGrid 使用技巧(2)(转载)

(1)如何设置表格固定的列数,如下图所示:               这里固定的列数为3列,通过设置下面属性来改变固定的列数:               AdvStringGrid.FixedCols:=n;(n为要固定的列数值)     (2)如何从AdvStringGrid中读取和向AdvStringGrid中导入值:        AdvStringGrid.Cells[

欧少的博客 1986

AdvStringGrid 标题头 加粗的问题

AdvStringGrid1.RowCount = 1的时候,会是下面这样: 当AdvStringGrid1.RowCount = 2 时 才是正确的: 转载于:https://www.cnblogs.com/del88/p/7073370.html

weixin_30810239的博客 150

【亲测免费】 TMS AdvStringGrid 控件 v8.3.4.0 下载仓库

TMS AdvStringGrid 控件 v8.3.4.0 下载仓库 【下载地址】TMSAdvStringGrid控件v8.3.4.0下载仓库 - **版本**: v8.3.4.0- **适用环境**: Delphi XE10.2- **控件类型**: TMS AdvStringGrid 控件- **可用性**: 亲测可...

gitblog_09782的博客 543

提升Delphi开发效率的利器:TMS AdvStringGrid 控件 v8.3.4.0

提升Delphi开发效率的利器:TMS AdvStringGrid 控件 v8.3.4.0 【下载地址】TMSAdvStringGrid控件v8.3.4.0下载仓库 - **版本**: v8.3.4.0- **适用环境**: Delphi XE10.2- **控件类型**: TMS AdvStringGrid 控件- *...

gitblog_09794的博客 672

AdvStringGrid用法

AdvStringGrid //从文件中加载asg.LoadFromCSV(Path+FileName); //清空所有行asg.ClearRows(0,asg.RowCount-1); //保存asg.SaveToCSV(Path+'Test.csv'); ColCount := 41;         {总列数} RowCount := 3;          {总行数} Fixe...

weixin_34161083的博客 477

AdvStringGrid使用技巧

AdvStringGrid使用技巧,很详细的。

advgrid 使用方法

简单的介绍了TAdvStringGrid控件的一些常用的属性事件和方法,主要用于统计数据和设计比较复杂的表格!核心部分:合并单元格的几个函数和过程!

delphi TMS tadvstringgrid的一个合并单元格bug

tms advstringgrid,在合并某行的单元格,赋值之后。如果在多列中添加checkbox会导致合并的单元格值清空了。不知道怎么回事,有谁知道怎么解决吗?

g58521547的专栏 347

学习和使用AdvStringGrid

1. 前言项目上需要一个表格组件来展现数据。Delphi自带的StringGrid实在功能太少,而且很难看。的确是可以扩展,但是这是要花费很多时力的。 我需要的表格组件应有如下基本功能:单元格中可以加入复选框、单选框、下拉框、日期选择框等。 点击列标题可以排序. 列拖动(这个功能不要也行) 支持翻页导航。(数据行数太多时我想分页显示) 方便的打印接口,而且可以方便地设置

山刀在线 2288

delphi advstringgrid 日常操作

function GetWeekName(v:integer): string; begin case v of 7: Result := '周六'; 1: Result := '周日'; 2: Result := '周一'; 3: Result := '周二'; 4: Result := '周三'; 5: Result := '周四'; ...

全粘工程师 1686

cells函数的使用方法oracle,oracle 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)...

oracle 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)2019-01-03编程之家https://www.jb51.cc原理就是先声明常量,包括列数,行数,各列的属性,然后在程序的其它过程用这些常量来控制Cells。非常方便,便于修改和移植!以下为窗体整体代码,中间有说明。此段代码不光有动态AdvStringGrid的完美示例,还有一般窗体的常用的...

weixin_29468871的博客 383

AdvStringGrid之表脚统计实现

AdvString可以在表格尾部显示一个表尾行,设置代码如下:{***************************************************************************}{ TAdvStringGrid demo application                                           }{ for

记性不好,笔记而已 3945
上一篇: AdvStringGrid使用方法(1)
下一篇: 精锐固定资产管理系统
shuiying
博客等级 码龄21年 66粉丝 42原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值