a.点标题排序: 1.eh的optionsEh 的dghAutoSortMarking True 2 eh的sortlocal true 3.列的title的toolbutton为true 4。eh的optionsEh 的dghMultiSortMarking True 多个字段一起排(按CTRL+Mouse) 5.uses加相应的驱动ehlibado/ehlibbde b.模糊过滤: uses ehlibado; if Assigned(DataSource) and Assigned(DataSource.DataSet) then DataSource.DataSet.Filtered :=true; STFilter.Local :=True; STFilter.Visible :=True; //加过滤下拉列表 for i:=0 to Columns.Count-1 do Columns[i].STFilter.ListSource :=DataSource; //加排序列表菜单 列的dropdownSizing c.斑马线 if Assigned(DataSource) and Assigned(DataSource.DataSet) then begin if DataSource.DataSet.IsSequenced then begin OddRowColor :=clRed; EvenRowColor:=clYellow; end else begin aDBGridEH.OnDrawColumnCel//处理 end; end; end; procedure DBGridEhDrawColumnCell(Self: TObject;Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); begin if (gdSelected in State) then begin end else if (Rect.Top = (Sender as TDBGridEh).CellRect((Sender as TDBGridEh).Col,(Sender as TDBGridEh).Row).Top) and (not (gdFocused in State) or not (Sender as TDBGridEh).Focused) then begin (Sender as TDBGridEh).Canvas.Brush.Color := clblack;//选择行 (Sender as TDBGridEh).Canvas.Font.Color := clWhite; end else begin (Sender as TDBGridEh).Canvas.Brush.Color := clYellow;//奇行 (Sender as TDBGridEh).Canvas.Font.Color := clWindowText; end; if (not (gdSelected in State)) and ((((Sender as TDBGridEh).DataSource.DataSet.RecNo) mod 2) =0) then begin (Sender as TDBGridEh).Canvas.Brush.Color := clred;//偶行 (Sender as TDBGridEh).Canvas.Font.Color := clWindowText; end; // (Sender as TDBGridEh).Canvas.FillRect(Rect); (Sender as TDBGridEh).DefaultDrawColumnCell(Rect,DataCol,Column,State); end; d.统计栏 e.保存grid位置 SaveGridLayoutIni(IniFileName,GetFullName(TWinControl(Sender)),true); RestoreGridLayoutIni(IniFileName,vSectionName,[grpColIndexEh, grpColWidthsEh, grpSortMarkerEh, grpColVisibleEh,grpDropDownRowsEh,grpDropDownWidthEh]);