当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 急!谁有ares报表控件的序列号。回答正确者100分,绝不食言 ......
 ·怎样取得计算域中的内容    »显示摘要«
    摘要: 在数据窗口中,怎样取得计算域中的内容?比如说,有一个计算平均值的计算域,我想取出它的值。不能用 getitem系列函数,还有其他的解决方法呢? ......


怎样实现“在StringGrid中插入ComboBox下拉选框”

请问怎样实现“在StringGrid中插入ComboBox下拉选框”?  
 

NO.1   作者: u2m

我试过了,以下绝对可以  
  你编译执行下,点击第一列,combobox出来  
   
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls,   Grids;  
   
  type  
      TForm1   =   class(TForm)  
          StringGrid1:   TStringGrid;  
          ComboBox1:   TComboBox;  
          procedure   ComboBox1Exit(Sender:   TObject);  
          procedure   FormCreate(Sender:   TObject);  
          procedure   StringGrid1SelectCell(Sender:   TObject;   ACol,   ARow:   Integer;  
              var   CanSelect:   Boolean);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.dfm}  
   
  procedure   TForm1.ComboBox1Exit(Sender:   TObject);  
  begin  
      with   sender   as   TCombobox   do   begin  
          hide;  
          if   itemindex   >=   0   then  
              with   stringgrid1   do  
                  cells[col,   row]   :=   items[itemindex];  
      end;  
   
  end;  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      combobox1.visible   :=   false;  
  end;  
   
  procedure   TForm1.StringGrid1SelectCell(Sender:   TObject;   ACol,  
      ARow:   Integer;   var   CanSelect:   Boolean);  
  var  
      R:   TRect;  
      org:   TPoint;  
  begin  
      with   Sender   as   TStringgrid   do  
          if   (ACol   =   1)   and   (ARow   >=   FixedRows)   then   begin  
  //   entered   the   column   associated   to   the   combobox  
  //   get   grid   out   of   selection   mode  
              perform(WM_CANCELMODE,   0,   0);  
  //   position   the   control   on   top   of   the   cell  
              R   :=   CellRect(Acol,   Arow);  
              org   :=   Self.ScreenToClient(ClientToScreen(R.topleft));  
              with   combobox1   do   begin  
                  setbounds(org.X,   org.Y,   r.right   -   r.left,   height);  
                  itemindex   :=   Items.IndexOf(Cells[acol,   arow]);  
                  Show;  
                  BringTofront;  
  //   focus   the   combobox   and   drop   down   the   list  
                  SetFocus;  
                  DroppedDown   :=   true;  
              end;  
          end;  
  end;  
   
  end.  
 


    摘要: 静态的可以,动态的也好!!!!谢谢!!! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE