dbgrid滚动条的问题

liuhelin 2005-03-11 10:33:49
使用adotable并设置过虑filter属性
当使用自带的dbgrid或ehlib的dbgrid控件显示数据,
记录多时候垂直滚动条不好用,无论多少条记录滚动条都是那么一点长度
如设置ehlib的grid垂直滚动条的tracking为true则更坏,滚动条拉到中间就下不去了
有人遇到过这个问题么??谁知道怎么解决。高分相送。
...全文
471 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiirii 2005-03-11
  • 打赏
  • 举报
回复
這樣, 本貼分給還樓主自己, 沒意見吧??
laiqinghe377 2005-03-11
  • 打赏
  • 举报
回复
回楼主 在使用delphi自带的dbgrid的时候 只要你一旦让dbgrid和adotable或者adoquery连接的时候

在设计模式下 假如 aditable里有N条记录 而你的dbgrid的大小不够显示N条记录的时候(我是说

dbgrid的高度<(dbgrid的行数-1)*行高的时候) dbgrid就会自动出现滚动条 所以我的办法是在设

计模式下不打开adotable

至于 ehlib的dbgrid 我没有用过
liuhelin 2005-03-11
  • 打赏
  • 举报
回复
不好意思还得自己找原因
原因如下
procedure TCustomDBGrid.UpdateScrollBar;
var
SIOld, SINew: TScrollInfo;
begin
if FDatalink.Active and HandleAllocated then
with FDatalink.DataSet do
begin
SIOld.cbSize := sizeof(SIOld);
SIOld.fMask := SIF_ALL;
GetScrollInfo(Self.Handle, SB_VERT, SIOld);
SINew := SIOld;
if IsSequenced then
begin
SINew.nMin := 1;
SINew.nPage := Self.VisibleRowCount;
SINew.nMax := Integer(DWORD(RecordCount) + SINew.nPage - 1);
if State in [dsInactive, dsBrowse, dsEdit] then
SINew.nPos := RecNo; // else keep old pos
end
else
begin
SINew.nMin := 0;
SINew.nPage := 0;
SINew.nMax := 4;
if FDataLink.BOF then SINew.nPos := 0
else if FDataLink.EOF then SINew.nPos := 4
else SINew.nPos := 2;
end;
if (SINew.nMin <> SIOld.nMin) or (SINew.nMax <> SIOld.nMax) or
(SINew.nPage <> SIOld.nPage) or (SINew.nPos <> SIOld.nPos) then
SetScrollInfo(Self.Handle, SB_VERT, SINew, True);
end;
end;

//要判断是否if IsSequenced then
如果flase 则无论数据有多少条记录都是
SINew.nMin := 0;
SINew.nPage := 0;
SINew.nMax := 4;

//而issequenced中
function TCustomADODataSet.IsSequenced: Boolean;
begin
Result := Assigned(RecordSet) and Recordset.Supports(adApproxPosition) and
(CursorLocation <> clUseServer) and not Filtered;
end;

可见not Filtered,只要设置了过虑就肯定要IsSequenced返回false了


还是得靠自己啊,csdn太让我失望了
blackdell 2005-03-11
  • 打赏
  • 举报
回复
DBGrid的滚动条是不太好用,即便是一条记录也有个滚动条。
你那个情况是不是记录太多了,滚动条到了最小长度了?
liuhelin 2005-03-11
  • 打赏
  • 举报
回复
和多少条数据没关系
boyhappyboy 2005-03-11
  • 打赏
  • 举报
回复
楼主有多少条数据??

5,927

社区成员

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

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