目前网上都是在初始化时设置
procedure TForm1.AdvStringGrid1GetEditorType(Sender: TObject;
  ACol, ARow: Integer; var AEditor: TEditorType);
begin
  if ACol =2 then
  begin
        aEditor := edComboList;
        AdvStringGrid1.ClearComboString;
        AdvStringGrid1.AddComboString('10CM');
        AdvStringGrid1.AddComboString('20CM');
  end;
end;
初始化后怎么对edComboList赋值呢?
procedure TForm1.Button1Click(Sender: TObject);
var
  combo:TGridCombo;
begin
combo:=TGridCombo(AdvStringGrid1.CellProperties[2,1]);
combo.Items.Add('123');//都会报错
end;

解决方案 »

  1.   

    GetEditorTyp事件是你每次点击单元格就触发一次,你怎么在外面赋值那,就算你赋值成功应该也没有吧
      

  2.   

    procedure TForm1.AdvStringGrid1GetEditorType(Sender: TObject;
      ACol, ARow: Integer; var AEditor: TEditorType);
    begin
      if ACol =2 then
      begin
      aEditor := edComboList;
      AdvStringGrid1.ClearComboString;
      AdvStringGrid1.AddComboString('10CM');
      AdvStringGrid1.AddComboString('20CM');
      end;
    end;
    这样能写吗?
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    AdvStringGrid1.AddComboString('30CM');
    end;