CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  VCL组件使用和开发

StringGride中跨列标题,如何实现?

楼主flowercity(菜农)2004-08-02 12:54:38 在 C++ Builder / VCL组件使用和开发 提问

我有一个StringGride  
  如何实现下面的效果?  
   
  标题11                 标题12                         标题13  
  标题21                 数据                             数据  
  标题22                 数据                             数据  
  标题23                 数据                             数据  
          标                                             题24                     //跨3列标题,如何实现??  
  标题25                 数据                             数据  
  标题26                 数据                             数据 问题点数:20、回复次数:8Top

1 楼xpdavis(咕嘟-不想孤独)回复于 2004-08-02 13:01:30 得分 0

恐怕实现不了吧?Top

2 楼lhg3122(好人2003)回复于 2004-08-02 21:18:15 得分 0

你换一个组件,TAdvStringGrid,我现在就用它来实现Top

3 楼lhg3122(好人2003)回复于 2004-08-02 21:19:08 得分 5

没说完,TAdvStringGrid是派生于TStringGrid和TDBGrid的Top

4 楼flowercity(菜农)回复于 2004-08-02 21:49:03 得分 0

这个组件哪有?  
  可以连上FASTREPORT报表吗?Top

5 楼JetKingLau(时差)(亦远亦近)(静坐常思已过 闲谈勿论人非 …………)回复于 2004-08-02 21:54:17 得分 15

偶以前的回复,用来合并单元格的,你改一下   c1、r1、c2、r2   看看。  
   
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::StringGrid1DrawCell(TObject   *Sender,   int   ACol,  
              int   ARow,   TRect   &Rect,   TGridDrawState   State)  
  {  
          int   c1   =   3,   r1   =   3,   c2   =   5,   r2   =   5;  
          if(   //State.Contains(gdFixed)   &&  
                  ACol   >=   c1   &&   ACol   <=   c2   &&   ARow   >=r1   &&   ARow   <=   r2   )   {  
                  TRect       rect1   =   StringGrid1->CellRect(c1,r1);  
                  TRect       rect2   =   StringGrid1->CellRect(c2,r2);  
                  TRect       rect     =   TRect(rect1.left,rect1.top,rect2.left-1,rect2.bottom-1);  
                  TStringGrid   *grid       =   (TStringGrid*)Sender;  
                  TCanvas   *canvas           =   grid->Canvas;  
                  canvas->FillRect(rect);  
   
                  canvas->Pen->Color   =   clBlack;  
                  canvas->MoveTo(rect.left,rect.top);  
                  canvas->LineTo(rect.right,rect.bottom);  
                  canvas->MoveTo(rect.left,rect.bottom);  
                  canvas->LineTo(rect.right,rect.top);  
   
                  canvas->TextOutA(  
                          rect.left   +   rect.Width()/2   -   canvas->TextWidth("CombineGrids")/2,  
                          rect.top   +   rect.Height()/2   -   canvas->TextHeight("CombineGrids")/2,  
                          "CombineGrids");  
          }  
  }  
  //---------------------------------------------------------------------------  
   
   
  Top

6 楼flowercity(菜农)回复于 2004-08-03 12:53:52 得分 0

非常感谢楼上的  
  非常感谢  
  我必须用StringGrid  
  否则报表不能实现  
  呵呵  
  下午我去试试  
  感谢Top

7 楼flowercity(菜农)回复于 2004-08-03 12:55:30 得分 0

晚上来揭帖  
  Top

8 楼flowercity(菜农)回复于 2004-08-03 19:10:22 得分 0

是可以  
  但那样实现之后  
  报表还是原样  
  没跨列  
  呵呵  
  谢谢  
  Top

相关问题

  • 怎样实现标题列
  • DBGridEh点击标题标题如何实现?
  • 在C++Builder中如何实现重画标题栏?
  • 数据列标题实现---排序?(看不到代码)
  • 如何实现打开无标题栏的IE窗口?
  • 如何实现滚动视图中固定标题的显示
  • 如何实现用按钮控制PageControl 添加窗体标题
  • 怎样在无标题窗体中实现右键菜单!
  • 怎样实现可缩放的无标题窗体?
  • 如何实现显示对话框之前修改其标题?

关键词

  • 数据
  • 报表
  • top
  • 标题
  • rect
  • stringgrid
  • canvas
  • combinegrids
  • 实现
  • trect

得分解答快速导航

  • 帖主:flowercity
  • lhg3122
  • JetKingLau

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo