关于ehlib3.1中满格显示修改,请大家进来看看。 ( 积分: 50 )

  • 主题发起人 主题发起人 iwillbestrong
  • 开始时间 开始时间
I

iwillbestrong

Unregistered / Unconfirmed
GUEST, unregistred user!
看到芙蓉酒店管理系统里的表格实现了满格等多种合中国人习惯的功能就十分羡慕,但开发些管理系统的公司一直不放源代码出来(要是我,我一定会把我的代码公布出来,开源万岁),只能从各种迹象看出他们是在ehlib基础上加的功能,他们的功力真是深厚,能改得如此稳定。
我用过ehlib3.2中国式表格的组件(就是那个中国人改的),里面有满格显示,但设置了以后会出严重非常严重的错误(是在写数据时出措)。
小弟十分想要满格功能,于是自己动手改了起来(我平身第一次改组件,功力自然很浅,高手看了不要笑,要指点哈)。我只在TCustomDBGridEh.Paint中增加了部分代码。代码如下:
在TCustomDBGridEh.Paint的第九行(with drawinfo do后面)后面加:
with DrawInfo do
begin
//lmh add
if FFullGrid then
begin
tempcount:=(vert.GridExtent div vert.FixedBoundary)+1;
if vert.GridCellCount < tempcount then
begin
vert.FullVisBoundary:=tempcount*vert.FixedBoundary ;
vert.GridBoundary:=tempcount*vert.FixedBoundary ;
vert.GridCellCount:=tempcount;
vert.LastFullVisibleCell:=tempcount-1;
bkrect.Left:=0;
bkrect.Top:=0;
bkrect.Right:=horz.GridBoundary;
bkrect.Bottom:=vert.GridExtent;
tempcolor:=canvas.Brush.Color;
canvas.Brush.Color := Color;
Canvas.FillRect(bkrect);
canvas.Brush.Color := tempcolor;
end;
end;
这样在只显示数据的情况下能达到满格,并且很稳定。但只要设了footer等高级功能后就不能满格了,请高手指点一下,我改的是ehlib3.1版。谢谢了
还有一些功能也是想要的,比如选中单元的颜色,失去焦点的选中单元颜色的修改,表格线宽。
 
看到芙蓉酒店管理系统里的表格实现了满格等多种合中国人习惯的功能就十分羡慕,但开发些管理系统的公司一直不放源代码出来(要是我,我一定会把我的代码公布出来,开源万岁),只能从各种迹象看出他们是在ehlib基础上加的功能,他们的功力真是深厚,能改得如此稳定。
我用过ehlib3.2中国式表格的组件(就是那个中国人改的),里面有满格显示,但设置了以后会出严重非常严重的错误(是在写数据时出措)。
小弟十分想要满格功能,于是自己动手改了起来(我平身第一次改组件,功力自然很浅,高手看了不要笑,要指点哈)。我只在TCustomDBGridEh.Paint中增加了部分代码。代码如下:
在TCustomDBGridEh.Paint的第九行(with drawinfo do后面)后面加:
with DrawInfo do
begin
//lmh add
if FFullGrid then
begin
tempcount:=(vert.GridExtent div vert.FixedBoundary)+1;
if vert.GridCellCount < tempcount then
begin
vert.FullVisBoundary:=tempcount*vert.FixedBoundary ;
vert.GridBoundary:=tempcount*vert.FixedBoundary ;
vert.GridCellCount:=tempcount;
vert.LastFullVisibleCell:=tempcount-1;
bkrect.Left:=0;
bkrect.Top:=0;
bkrect.Right:=horz.GridBoundary;
bkrect.Bottom:=vert.GridExtent;
tempcolor:=canvas.Brush.Color;
canvas.Brush.Color := Color;
Canvas.FillRect(bkrect);
canvas.Brush.Color := tempcolor;
end;
end;
这样在只显示数据的情况下能达到满格,并且很稳定。但只要设了footer等高级功能后就不能满格了,请高手指点一下,我改的是ehlib3.1版。谢谢了
还有一些功能也是想要的,比如选中单元的颜色,失去焦点的选中单元颜色的修改,表格线宽。
 
下载我贴上网的控件http://kinneng.icpcn.com,顺便保证跟自用是的一样,没有任何限制,可以交流
 
exdbgrid是你自己做的吗?向你学习。
 
是,在ehlib,很多功能未做好
 
谢谢你提供源码给我们看..以后多向你学习
 
to yanggairong:好像exdbgrid里没有源码哦。不过exdbgrid真的不错,比ehlib3.2中国式表格稳定多了。没有源码,没法学习呀。求kinneng跟你那位老哥说一声能不能教我们改或增加dbgrideh的功能,我只要求学会满格显示功能与单元格焦点颜色功能就比较满足了。谢谢。我现在的问题主要对dbgrideh的结构及动作机制不懂。
 
to kinneng:请加我QQ 369400743
 
满格显示是参考楼主下载的那个ehlib3.5中国式表格的组件的一部分。
QQ号65686789,但很久没有安装QQ,已经没有Q很久了
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3112907
 
我不想修改了,我要练内功,自己做组件,不再花太多的时间在外表上.用别人的东西束手束脚.
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
881
DelphiTeacher的专栏
D
D
回复
0
查看
850
DelphiTeacher的专栏
D
D
回复
0
查看
800
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部