StringGride中跨列标题,如何实现?
我有一个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




