dbgrideh的功能

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]);

原文地址:https://www.cnblogs.com/jiangyuxuan/p/1285035.html