`

Ehlib表格区填满表格线的解决方案

 
阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>

表格区填满表格线的问题,公布如下:

3。6版本中修改DBGridEh.pas单元的UpdateRowCount过程:
procedure TCustomDBGridEh.UpdateRowCount;
var BetweenRowHeight, t: Integer;
OldRowCount, OccupiedHeight, VisibleDataRowCount, NewRowCount: Integer;
。。。。。。。。。。。。。。
begin
...............................
with FDataLink do
if not Active or (RecordCount = 0) or not HandleAllocated then
begin
.................
end else
begin
VisibleDataRowCount := (ClientHeight - OccupiedHeight {- LineHeight}) div DefaultLineRowHeight;
if VisibleDataRowCount

FDataLink.BufferCount := VisibleDataRowCount;
if FFooterRowCount = 0 then //增加的一个条件,用户可以用FooterRowCount值来决定是否填满表格线
VisibleDataRowCount := FDataLink.RecordCount;
Inc(OccupiedHeight, DefaultLineRowHeight * VisibleDataRowCount);
NewRowCount := VisibleDataRowCount + TopDataOffset;

if FooterRowCount > 0 then
begin
NewRowCount := NewRowCount + FooterRowCount + 1;
SetRowCount(NewRowCount);
BetweenRowHeight := ClientHeight - OccupiedHeight {- LineHeight};
if BetweenRowHeight //RowHeights[TopDataOffset + VisibleDataRowCount] := BetweenRowHeight;//原代码行
RowHeights[TopDataOffset + VisibleDataRowCount] := 0;//修改后的代码行
//把多余的不足一行的高度加在最后一行,增加下面一行代码
RowHeights[FTitleOffset + VisibleDataRowCount] := DefaultRowHeight+BetweenRowHeight;
end else
SetRowCount(NewRowCount);

UpdateActive;
end;
if OldRowCount RowCount then Invalidate;
end;


4.14版本中也是修改DBGridEh.pas单元的UpdateRowCount过程:
procedure TCustomDBGridEh.UpdateRowCount;
var
BetweenRowHeight,{恢复被注释掉的变量BetweenRowHeight} t: Integer;
OldRowCount, OccupiedHeight, VisibleDataRowCount, NewRowCount: Integer;
。。。。。。。。。。。。。
begin
...........................
with FDataLink do
if not Active or (RecordCount = 0) or not HandleAllocated then
begin
//MoveColRow(Col, TitleOffset, False, False);

SetRowCount(1 + TopDataOffset);
ContraRowCount := FooterRowCount;
//恢复原代码中被注释掉的语句行
(*========================================================================*)
SetRowCount(1 + TopDataOffset);
Inc(OccupiedHeight, DefaultLineRowHeight);
if HandleAllocated then
begin
if (FooterRowCount > 0) then
begin
SetRowCount(RowCount + FooterRowCount + 1);
BetweenRowHeight := ClientHeight - OccupiedHeight {- LineHeight};
if BetweenRowHeight RowHeights[TopDataOffset + 1] := BetweenRowHeight;
end;
end;
(*========================================================================*)
end else
begin
VisibleDataRowCount := (ClientHeight - OccupiedHeight {- LineHeight}) div DefaultLineRowHeight;
if VisibleDataRowCount

FDataLink.BufferCount := VisibleDataRowCount;
if FFooterRowCount = 0 then //增加的一个条件,用户可以用FooterRowCount值来决定是否填满表格线
VisibleDataRowCount := FDataLink.RecordCount;
Inc(OccupiedHeight, DefaultLineRowHeight * VisibleDataRowCount);
NewRowCount := VisibleDataRowCount + TopDataOffset;

if FooterRowCount > 0 then
begin
SetRowCount(NewRowCount);
ContraRowCount := FooterRowCount;
//恢复原代码中注释掉的部分
(*========================================================================*)
NewRowCount := NewRowCount + FooterRowCount + 1;
SetRowCount(NewRowCount);
BetweenRowHeight := ClientHeight - OccupiedHeight {- LineHeight};
if BetweenRowHeight //RowHeights[TopDataOffset + VisibleDataRowCount] := BetweenRowHeight;//这一行仍然不要,改成下面的代码
(*========================================================================*)
RowHeights[TopDataOffset + VisibleDataRowCount] := 0;//修改后的代码行
//把多余的不足一行的高度加在最后一行,增加下面一行代码
RowHeights[FTitleOffset + VisibleDataRowCount] := DefaultRowHeight+BetweenRowHeight;
end else
SetRowCount(NewRowCount);

UpdateActive;
end;
if OldRowCount RowCount then Invalidate;
end;



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1620235


分享到:
评论

相关推荐

    Ehlib 3.2 PGT 版 中国式表格

    表格线颜色(Gridlinecolor property)3.表格满格显示 (Set Footerrowcount&gt;0)4.合计行文字垂直居中 合计行显示方式(set FooterDisplayStyle=true 紧贴表格内容 false在表格底部显示5.设置列作为金额栏显示(set ...

    EhLib功能扩展(定制表格,万能过滤,数据定位)

    EhLib功能扩展(定制表格,万能过滤,数据定位)可用借鉴使用

    EhLib36EhLib36EhLib36

    EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36EhLib36...

    Ehlib 3.2 PGT 版 中国式表格,可排序,打印

    表格线颜色(Gridlinecolor property) 3.表格满格显示 (Set Footerrowcount&gt;0) 4.合计行文字垂直居中 合计行显示方式(set FooterDisplayStyle=true 紧贴表格内容 false在表格底部显示 5.设置列作为金额栏显示(set ...

    EhLib4.3 - EhLib

    1、在“D:\Program Files\Borland\Delphi7”(delphi7安装目录)下创建一个文件夹EhLib。 2、把ehlibsrc4.3\Common下的文件复制到EhLib文件夹下。 3、把ehlibsrc4.3\Delphi7下的文件复制到EhLib文件夹下。 4、打开...

    EhLib 3.2 (数据表格、报表控件包)

    EhLib 3.2,一套数据库表格控件,方便地实现DBGrid操作与表格打印等。更新过TDBGridEh、TColumnEh组件。

    EhLib 3.0 (数据表格、报表控件包)

    EhLib 3.0,一套数据库表格控件,方便地实现DBGrid操作与表格打印等。

    Ehlib应用例子(定制表格,万能过滤等)

    ColEditor增加了对GRIDEH是否可以排序进行控制,但前题是单元要引用EhLibAdO

    EhLib

    表格线颜色(Gridlinecolor property)3.表格满格显示 (Set Footerrowcount&gt;0)4.合计行文字垂直居中 合计行显示方式(set FooterDisplayStyle=true 紧贴表格内容 false在表格底部显示5.设置列作为金额栏显示(set ...

    EhLib v3.3 (数据表格、报表控件包)

    EhLib 3.3,一套数据库表格控件,方便地实现DBGrid操作与表格打印等。

    EhLib 11.0 第三方Grid控件

    Ehlib是一款非常不错的第三方Grid控件,界面美观,功能强劲,内含编程时最常用的Delphi控件和含源码,比DELPHI自带的强大许多,比cxGrid小巧,使用起来简单方便。

    EhLib 3.3 汉化版 (增加排序)

    EhLib 3.3 汉化版 加入排序功能。 排序功能使用方法: 1、TDBGridEh的OptionsEh/SghAutoSortMarking属性设置为:True; 2、TDBGridEh.Columns[*]的Title/TitleButton属性设置为:True。 E-mail: FireRoseSoft@...

    EhLib的最新版本EhLib 5.5

    EhLib5.5包含了Borland的Delphi5-9,2005,2006,Borland C ++ Builder 5-6,CodeGear Delphi 2007,CodeGear RAD Studio 2009,Embarcadero RAD Studio 2010,XE和RAD Studio XE2,目的在于增加客户端数据库在交互...

    EhLib v4.2 Delphi表格组件汉化版,根据网上的 EhLib 4.2.12 原版汉化修改而来

    EhLib v4.2 Delphi表格组件汉化版,根据网上的 EhLib 4.2.12 原版汉化修改而来,未改变原版的目录结构,只汉化了文件内容,安装时请按照原版 Readme 文件中的安装方法安装,将 Common 目录中的内容拷贝到 Delphi(X) ...

    EhLib5.0.13 最新的ehlib源码

    EhLib 5.0 Build 5.0.13 Russian version. Full source included. ------------------------------------------------------------------- The Library contains components and classes for Borland Delphi ...

Global site tag (gtag.js) - Google Analytics