dbgrideh中增加了序号列,点序号排序程序死掉。dbgrideh的列是动态加的,初始没有数据时,点dbgrided的空列也死掉。
下面是排序和增加列号的过程,谢谢了!procedure TForm1.DataSort(Column: TField; DataSet:TDataSet);
var
str:string;
begin
if DataSet.IsEmpty then exit;
if Column.DataType in[ftMemo, ftGraphic, ftFmtMemo] then exit;
//if Column.DisplayName = '序号' then exit;
str:=Trim(TADODataSet(DataSet).Sort);
if (str='')or(Copy(str,Length(str)-3,4)='DESC') then
TADODataSet(DataSet).Sort:=Column.FieldName+' ASC'
else
TADODataSet(DataSet).Sort:=Column.FieldName+' DESC';
end;
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
DBGridRecordSize(Column);
if Column.Index = 0 then
if DBGridEh1.SumList.RecNo <> -1 then
DBGridEh1.Canvas.TextRect(Rect, Rect.Left + 3, Rect.Top + 2,
IntToStr(DBGridEh1.SumList.RecNo));
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货