比如
在DBGrid.colum[0].picklist中设置'AAA','BBB','CCC'下拉列表,
当点击'AAA'时,DBGrid.colum[1].picklist显示'111',
点击'BBB'时显示‘222',点击'CCC'时显示‘333'

解决方案 »

  1.   

    TABLE的OnChange事件里进行判断并处理
      

  2.   

    在TDataSource的OnDataChange事件里做更好
      

  3.   

    那么怎么用程序实现判断DBGrid.colum[1].picklist当前显示的值呢?
    (我用DBGrid.colum[1].picklist.text却显示整个列表的数据。)
      

  4.   

    在OnCellClick中写代码控制应该可以吧
      

  5.   

    我也想在OnCellClick中去实现,但怎么判断DBGrid.colum[0].picklist下的下拉列表(‘AAA’,‘BBB’,‘CCC’)是什么呢?
      

  6.   

    rocedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
    var
      s:string;
    begin
      s:=DBGrid.SelectedField.AsString; 
      if DBGrid1.Columns[0].PickList.IndexOf(s) ='xxxx' then
        xxxxxxxxend;
      

  7.   

    rocedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
    var
      s:string;
    begin
      s:=DBGrid.SelectedField.AsString; 
      if s='xxxx' then
        xxxxxxxxend;
      

  8.   

    谢谢cg1120(代码最优化-§新年祝福你,好运伴着你§),我试出来了
    procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
    var
       s:string;
    begin
      s:=DBGrid1.SelectedField.AsString;
      if s='AAA' then
      begin
      DBGrid1.Columns[1].PickList.clear;
      DBGrid1.Columns[1].PickList.ADD('111');
      end else
          if s='BBB' then
          begin
          DBGrid1.Columns[1].PickList.clear;
          DBGrid1.Columns[1].PickList.ADD('222');
          end  else
               if s='CCC' then
               begin
               DBGrid1.Columns[1].PickList.clear;
               DBGrid1.Columns[1].PickList.ADD('333');
               end;
    end;