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;