我这用的是Demo1中的例子的中的,但点击按钮什么也没有,为什么?请过来人告知,谢谢!
procedure TForm1.ppmSaveSelectionClick(Sender: TObject);
var ExpClass:TDBGridEhExportClass;
    Ext:String;
begin
  SaveDialog1.FileName := 'file1';
  if (ActiveControl is TDBGridEh) then
    if SaveDialog1.Execute then
    begin
      case SaveDialog1.FilterIndex of
        1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
        2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
        3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
        4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
        5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
      else
        ExpClass := nil; Ext := '';
      end;
      if ExpClass <> nil then
      begin
        if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <>
           UpperCase(Ext) then
          SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
        SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl),
             SaveDialog1.FileName,False);
      end;
    end;
end;

解决方案 »

  1.   

    我用单步执行时发现到这句时:
    if (ActiveControl is TDBGridEh) then就直接跳到end了
      

  2.   

    1.
    把这个判断去掉
    if (ActiveControl is TDBGridEh) then
    ,因为当前活动控件总是按钮而不可能是DBGRIDEH2. 
    SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl),
    SaveDialog1.FileName,False)最后的False最好改成True,即SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl),
    SaveDialog1.FileName,True)要不导出是一个空表。