使DBGRID的前几列固定不滚动(100分)

  • 主题发起人 主题发起人 chj2000
  • 开始时间 开始时间
C

chj2000

Unregistered / Unconfirmed
GUEST, unregistred user!
在STRINGGRID中,可以使前几列或前几行固定,不滚动,如何在DBGRID中也实现这样的功能。
 
用两个?
 
TStringGrid(DBGrid1).FixedCols:=2;
TStringGrid(DBGrid1).FixedRows:=2;
 
to:沈前卫
没这么简单,若象你这般, 固定列的标题就没有了,而且移动某一列或改变
某一列宽度时固定列都将不复固定.
 
用控件吧,下载infopower pro 2000 for d4&d5,有一个twwdbgrid可以很容易的
实现你所要求的功能。
 
如果自己编程实现具有这样的功能DBGrid,比较困难。在RXLib控件包里有一个
RXDBGrid就可以简单实此功能,并且有源传码。
 
TStringGrid(DBGrid1).FixedCols:=2;
这样的方法确实标题会没有的,最好找一个控件

fstao:我下载了一个infopower 4 professional for D4,安装时要一个
registration number和一个security key,我在论坛里找到了123456,
1538C91CD4785DD1这两个号,可不行.你能告诉我一个号吗?
 
inforpower , rxlib 都有dbgrid控件可实现固定列
也可到http://www.vclxx.com/DELPHI/DEFAULT.HTM 好多这样的控件
顺便e-mail给你一个小的,with source code
 
RxLib2.5中的dbgrid控件可实现固定列,但同样存在标题消失的问题。
我们现在用的是自己的,从TCustomDBGrid继承而来,至少在固定列这个问题上,
我觉得已经比RxLib2.5中的好了,使用至今,只要没有水平滚动条或不要去动水
平滚动条,基本上都不会出现标题消失现象了。
 
to xWolt
我用RxLib2.6,没发现过样的问题
 
同意Billy的说法,你可以用两个dbgrid指向同一数据源,然后在第一个dbgrid中
只显示固定显示的几列,在另一个dbgrid中显示剩下的几列.....
 
rxlib275 很好用,带源码,中文资源包
http://hunterzhang.yeah.net
 
onmousemove事件
固定tfiled的displaywidth的数值
 
xWolf:
试试这个.

type
THackGrid=class(TCustomGrid);

procedure TForm1.FormCreate(Sender: TObject);
begin
THackGrid(DBGrid1).FixedCols:=2;
end;

 
呵呵,好象还是右点不对劲,如果右需要,我看看能不能继承一个,实现上述目的,需要
的请留言,超过5人我就试试.
 
// TExDBGrid是目前我们在用的,现在只剩移动水平滚动条时未能解决
procedure TExDBGrid.ColumnMoved(FromIndex, ToIndex: Longint);
begin
FSavedFixedCols := FixedCols;
inherited ColumnMoved(FromIndex, ToIndex);
FixedCols := FSavedFixedCols;
end;

procedure TExDBGrid.ColWidthsChanged;
begin
FSavedFixedCols := FixedCols;
inherited ColWidthsChanged;
FixedCols := FSavedFixedCols;
end;
 
这问题已讨论过好多次了,再次关注。
 
多人接受答案了。
 
后退
顶部