请问不能安装Ehlib60.dp和如何使用(调用)DBGridEh的筛选、查找功能?我安装DBGridEh时,总是不能安装Ehlib60.dpk(3.4版 3.6版 4.14版都试过),
提示:Delphi安装文件夹下的Projects\Bpl\Ehlib60.bpl不存在。
如何解决?
多谢!
再问:请问如何使用(调用)DBGridEh的筛选、查找功能?我用以下方法(盒子论坛的axcom提供) 实现筛选和查找时,出现错误提示:在DBGridEh1ApplyFilter中出现错误:
[Error] DBGdriEh.pas(415): Undeclared identifier: 'DBGridEhlFilter'
[Error] DBGdriEh.pas(418): Undeclared identifier: 'DBGridEh1Filter'
[Error] DBGdriEh.pas(418): Undeclared identifier: 'DBGridEh1Filter'
[Fatal Error] DBGridEh.dpr(5): Could not compile used unit 'DBGdriEh.pas'运行查找时出现以下错误:
[Error] DBGdriEh.pas(380): Undeclared identifier: 'ExcecuteDBGridEhFindDialogProc'
[Fatal Error] DBGridEh.dpr(5): Could not compile used unit 'DBGdriEh.pas'不知是什么原因,请帮忙。
//筛选
procedure TFrmSongDiff.btnFilterClick(Sender: TObject);
var
  i:integer;
begin
  inherited;
  with curGrid do
  begin
    STFilter.Visible := not STFilter.Visible;
    STFilter.Local := STFilter.Visible;
    for i:=0 to curGrid.Columns.Count-1 do
      Columns[i].STFilter.Visible := STFilter.Visible;
  end;
  if curGrid.STFilter.Visible then
    curGrid.OnApplyFilter(nil)// DBGridEh1ApplyFilter(nil)
  else begin
    curGrid.DataSource.DataSet.Filter := 'BChecked=1';
    curGrid.DataSource.DataSet.Filtered := True;
  end;
end;procedure TFrmSongChoice.DBGridEh1ApplyFilter(Sender: TObject);
var
  i: integer;
  s,Exp: string;
begin
  inherited;
  with DBGridEh1 do
  begin
    s := GetExpressionAsFilterString(DBGridEh1,GetOneExpressionAsSQLWhereString,nil); //需引用DbUtilsEh单元,Ehlib3.6及以后版本好象有变化
    if s<>'' then
    begin
      if DBGridEh1Filter='' then
        AdoQuery1.Filter := s
      else
        AdoQuery1.Filter := DBGridEh1Filter +' and '+ s;
    end else
      AdoQuery1.Filter := DBGridEh1Filter;
    //
    AdoQuery1.Filtered := true;
  end;
end;//查找//uses DBGridEhFindDlgs;
procedure TFrmSongDiff.btnFindClick(Sender: TObject);
var
  SelText: string;
begin
  inherited;
  SelText := curGrid.DataSource.DataSet.FieldByName(curGrid.Columns[curGrid.SelectedIndex].FieldName).AsString;
  ExcecuteDBGridEhFindDialogProc(curGrid, SelText, '', nil, curGrid.IsFindDialogShowAsModal);
end;