如何实现stringgrid的多单元格合并

xyqxj 2004-08-11 05:10:30
如题,请赐教!
...全文
548 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevinworkroom 2004-10-27
  • 打赏
  • 举报
回复
to:meiqingsong(阿飛)

你这也叫合并吗?
miky 2004-08-12
  • 打赏
  • 举报
回复
StringGrid不能真正的合并单元格!

如果只是合并FIXED部分或不编辑,可以用自绘的方法。因为不能编辑,不存在Edit的问题。
如果要编辑的话,不能用这个。

有个挺好的叫EasyGrid,我用过,还不错,但大量数据(几万行)不能用,会出错!
xyqxj 2004-08-12
  • 打赏
  • 举报
回复
但是那样并不直观的显示在一栏里面啊
梅青松 2004-08-12
  • 打赏
  • 举报
回复
本来就只是实现一个显示的效果
你可以在编辑时加一个TEdit控件
输入完成后再将内容转到stringgrid中
xyqxj 2004-08-12
  • 打赏
  • 举报
回复
果然是假的,修改记录时,有线出来不说,内容还是分开的。救命啊!
xyqxj 2004-08-12
  • 打赏
  • 举报
回复
真的是这样的吗,期待高手有时间做出组件来啊...
seekmydoom 2004-08-11
  • 打赏
  • 举报
回复
上面说的只是假象啊,怎么能像Excel那样呢?
Kerac 2004-08-11
  • 打赏
  • 举报
回复
每个单元格都是画布,如楼上的方法应该可以的吧。很久以前做过,忘的差不多了
WuChenCan 2004-08-11
  • 打赏
  • 举报
回复
有难度,关注!
梅青松 2004-08-11
  • 打赏
  • 举报
回复
将需合并单元格中间的线盖住就可以了

例子:
合并第三行第二、三两格
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if(ARow = 2) and (ACol = 2) then
begin
Rect.Left := Rect.Left -2;

end;
if(ARow = 2) and (ACol = 1) then
begin
Rect.Right := Rect.Right + 2;

end;
StringGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]) ;
end;
SydPink 2004-08-11
  • 打赏
  • 举报
回复
在详细点?贴个图来看看。呵呵

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧