用ONCELLCLICK事件,可以实现排序,不过别忘了REFRESH哟,显示三角我不知道了,不过我想不是很难吧
解决方案 »
- 求VirtualStringTree使用实例
- 我用delphi7.0ADO方式连接Oracle10g,在设置ADOQuery属性ActiveX为TRUE时报错
- Delphi中调用PB封装的问题(如解决了本题,本人将多给100分)在线等待中....
- 怎么把两个表的内容合并成一个表来显示
- 怎么样把execl通过delphi写的程序导入sql server中??
- 为什么这样的结果?^是指针我知道,但麻将^M^J,我就不理解了
- 得到计算机名用什么呀?
- 我的google又上不去了
- Delphi连接数据库问题
- 招哈尔滨delphi程序员
- 请问在保存密码到文件中时,比较简单的加密方法
- 如何选取照片的一部分粘贴到一控件中
如果是的话,只用在dbgrid的titleclick事件中加入
var
A_dataset:Tadodataset;
begin
if not (Column.Field.DataSet is tadodataset) then exit;
A_dataset:=(Column.Field.DataSet as tadodataset);
if A_dataset.Active=false then exit;
if HiWord(GetKeyState(VK_CONTROL))=0 then
begin
if A_dataset.Sort<>column.FieldName+' ASC' then
A_dataset.Sort:=column.FieldName+' ASC'
else
A_dataset.Sort:=column.FieldName+' DESC'
end
else
begin
A_dataset.Sort:=A_dataset.Sort+', '+column.FieldName+' ASC';
showmessage('°´'+A_dataset.Sort+'ÅÅÐò.');
end;
end;
谢谢你。程序执行到这里,
if not (Column.Field.DataSet is tadodataset) then exit;
就退出了,为什么?我的代码为:
unit sort;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, Grids, DBGrids, ADODB, StdCtrls;type
TForm1 = class(TForm)
ADOTable1: TADOTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Edit1: TEdit;
procedure DBGrid1TitleClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
A_dataset:Tadodataset;
begin
//Edit1.Text :=pchar(Column.Field.DataSet);
if not (Column.Field.DataSet is tadodataset) then exit;
A_dataset:=(Column.Field.DataSet as tadodataset);
if A_dataset.Active=false then exit;
if HiWord(GetKeyState(VK_CONTROL))=0 then
begin
if A_dataset.Sort<>column.FieldName+' ASC' then
A_dataset.Sort:=column.FieldName+' ASC'
else
A_dataset.Sort:=column.FieldName+' DESC'
end
else
begin
A_dataset.Sort:=A_dataset.Sort+', '+column.FieldName+' ASC';
showmessage('°´'+A_dataset.Sort+'ÅÅÐò.');
end;
end;
end.
if Column.Field.IsBlob then Exit;
Tclientdataset (column.Field.DataSet).IndexFieldNames :=column.FieldName;你可以在TITLECLICK中调用这个函数!看看吧。
if Column.Field.IsBlob then Exit;
Tclientdataset (column.Field.DataSet).IndexFieldNames :=column.FieldName;应该放在何处?