我希望根据输入表格大小动态生成相应大小的stringgrid,并想在倒数第二列中动态生成若干combobox,我采用了该论坛中所贴出的代码,用了一个提前建立好的combobox,然后点击具体表格列,将下拉框移动到此处,如果表格大小很小,比如3*3,显示很正常,但是表格很大,导致想显示的倒数第二列必须拖动才能出现,此时,下拉框无法显示,请高手指点!
另:我也使用了动态生成下拉框数组的方法,但是无法将下拉框数据成功赋值给表,请高手指点!

解决方案 »

  1.   

    procedure TForm1.StringGrid1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      combobox1.Left := 64 * LCol + LCol + 1;
      ComboBox1.Top := 21 * LRow + LRow + 1;
      ComboBox1.Visible := True;
    end;procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
      ARow: Integer; var CanSelect: Boolean);
    begin
      LCol := ACol;
      LRow := ARow;
    end;
    可以用类似这样的方法    
      

  2.   

    不用,TStringGrid本身可以支持内建立的ComboBox的,你可以看一下源码,我就是自己扩展了一下自己用的算了,我给你看一下吧,给你个源码的关键词,你自己找吧,实际上很简单的
    TEditStyle,
    TCustomGrid.GetEditStyle(ACol, ARow: Longint): TEditStyle; dynamic;
    TInplaceEditList,建立combobox时就这个类,专门给Grid用的这里有个文章,不用你看源码了
    http://dev-club.esnai.com/club/bbs/showEssence.asp?id=22588