ExportGrid4ToExcel(sFileName,cxGrid1,true,true )要一个Form 中有两个cxGrid ,想哪个cxGrid 是 ActiveControl 是就导 哪个cxGrid  。用 ExportGrid4ToExcel(sFileName,TcxGrid(self.ActiveControl.Name),true,true )
不行。TcxGrid(self.ActiveControl.Name) 是空的 

解决方案 »

  1.   

    這樣吧:
    ExportGrid4ToExcel(sFileName,TcxGrid(self.ActiveControl),true,true )
      

  2.   

    你是在什么事件中操作,如果不是在这两个cxGrid 中操作,ActiveControl就是你最后Button,那么你得用两个不同的Button来操作,你如果用PopupMenu 你可用 cxGrid的IsFocused属性来操作 if cxGrid1.IsFocused   then
           ExportGrid4ToExcel(sFileName,cxGrid1,true,true )       else if cxGrid2.IsFocused then
            ExportGrid4ToExcel(sFileName,cxGrid2,true,true )
     
      

  3.   

    cxGrid 个数 是不定,可能2个,可能3个, 当点 ‘转excel ’ 时,是tcxGrid 的得到Focus 
    ExportGrid4ToExcel(sFileName,cxGrid,true,true )
      

  4.   

      if self.ActiveControl.ClassName='TdxDBGrid' then
        begin
          SaveDialog1.Execute ;
          sFileName:=SaveDialog1.FileName+'.xls'  ;
          TdxDBGrid(self.ActiveControl).SaveToXLS(sFileName,true);
        end  ;如'TdxDBGrid'  这是样作的
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
    begin
      for i:=0 to   ComponentCount-1 do
       begin
         Memo1.Lines.Add(Components[i].Name);
        if Components[i] is TWinControl then
             Memo1.Lines.Add('TWinControl---'+Components[i].Name);
       end;end;cxGrid1
    TWinControl---cxGrid1
    cxGrid1DBTableView1
    cxGrid1Level1
    Button1
    TWinControl---Button1
    Memo1
    TWinControl---Memo1
    由于cxGrid1是个容器,不能获取真正的焦点(可能是它的一个子控件如TableView),但TableView不是一个TWinControl而ActiveControl是一个TWinControl类型
      

  6.   

    [Quote=引用 5 楼 xftyyyyb 的回复:]
     
    哪就是说,不能像dxgrid 哪样了,有无方法可实现呢
      

  7.   

    uses cxGridExportLink;
    procedure THR_RSZB_F.E2Click(Sender: TObject);
    begin
      inherited;
      if qry_all.IsEmpty then
      begin
        MessageBox(Handle,'數據不能為空!!!','數據導出...',MB_OK+ MB_ICONWARNING);
        Exit;
      end else
      begin
        if dlgSave1.Execute then
        begin
          ExportGridToExcel(dlgSave1.FileName,cxGrid1,True,True,False,'XLS');
          MessageBox(Handle,'數據成功導出!!!','數據導出...',MB_OK+ MB_ICONWARNING);
        end;
      end;
    end;
      

  8.   

    可以用pagecotrol嘛,
    切换到哪里不就知道了嘛
      

  9.   

      if self.ActiveControl.ClassName='TcxGridSite' then
        begin
          SaveDialog1.Execute ;
          sFileName:=SaveDialog1.FileName+'.xls'  ;
          ExportGrid4ToExcel(sFileName,TcxGrid(self.ActiveControl.ClassName),true,true );
        end当cxgrid 得到focust时,self.ActiveControl.ClassName='TcxGridSite' ,不是cxgrid ,
    当cxgrid 得到focust时,showmessage(self.ActiveControl.name)  是空的.