关于DbGrid的排序(85分)

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

chinaplate

Unregistered / Unconfirmed
GUEST, unregistred user!
我见到一个用Delphi做的软件
用一个DbGrid显示查询的结果,然后点击Gird的列标题,在列标题上就显示一个小三角,
同时Grid按此列排序,再点一下这个列,小三角就倒了过来,Grid又按此列倒排序。

请问这个功能,如何实现?
这是不是一个第三方控件?哪里能down下来?要Money吗?
 
是 dbgrided
 
这个功能好像是用listview控件实现的,不是DBgrid控件!
 
在dbgrid.OnTitleClick 事件中实现
 
可以自己作, 不过有难度(其实也不是难是烦)
推荐用控件:ehlib中的DBGridEh,你说的程序我估计就是ehlib的Demo.
www.51delphi.com有
 
我用的是TopGrid控件,别的DBgrid可以设单击表头的事件,原理一样:

全局变量:
var TitleBtn:integer;
PressNum:boolean;


//单击表头排序
procedure TForm1.GridHeadingClick(Sender: TObject; DataCol: Integer);
var s:string;
begin
with table do
begin
if not Active then exit;
s:='select * from '+表名+' Order By '+Fields[datacol-1].DisplayName;
if DataCol<>TitleBtn then
begin
s:=s+' ASC';
TitleBtn:=DataCol;
PressNum:=False;
end
else begin
if PressNum then
s:=s+' ASC'
else
s:=s+' DESC';
.PressNum:=Not PressNum;
end;
close;
SQL.Clear;
SQL.Add(s);
Open;
end;
end;

可以实现单击DBgrid的表头时进行排序,单击一下是升序,二下是降序
 
或者用QGrid试试,不错的,操作简单,功能强大。
 
网上免费第三方控件很多,比如你可以到“delphi深度历险”看看。
 
用ehlib可以实现,具体实现办法请看它的例子

 
我同意用dbgrid.OnTitleClick 的方法实现。
在这个事件中可以重新刷新DBGrid
 
用dbgrid.OnTitleClick 的方法实现
我已经成功的实现了
 
谢谢各位,我写程序实现了。
 
多人接受答案了。
 
后退
顶部