combobox1.itemindex:=combobox2.itemindex;你可以添加多个combobox控件设为不可见,当然在初始化的时候,要让这几个combobox同时加入相应的信息。把上述语句加到你要选择的combobox框的onchange事件中就可以了!:))

解决方案 »

  1.   

    是不是想把用户在combobox中选择的内容传到SQL中去查询?
      

  2.   

    你如果只是要解决一般的阿问题,在程序里面作一个对应关系就好了,如果要实现一个通用的方法,那么最好继承TComboBOx类,然后再其中添加一个成员变量,用来保存对应的列名不就可以了?
      

  3.   

    是的话,在SQL中设上对应的参数,如:
    select * from yourtable where Name=:paramName and Address=:paramAddress,
    以此类推,然后呢
    yourDataset.parameters[0].Value := cmbName.Text;
    ……
    try
      yourDataset.Open; 
    except
      ShowMessage('出错啦');
    end;
    这样就搞定了。
      

  4.   

    我使用的方法和h_huajun(阿华)类似,只是我不知道上面回答问题的朋友提到的方法中有没有哪种是比较规范或者说是效率比较好的呢?感谢大家!
      

  5.   

    我平时是定义一个一维数组,只要将TComboBox.ItemIndex的作为取数组值的下标就可以了,此方法挺有效率的。
      

  6.   

    你这个应用根本不需要讲效率,无伤大雅的!
    ----------------------------------------------
                       riff ur life
      

  7.   

    这样就行了
    adoquery1.fields[combobox1.indexof(combobox1.text)].fieldname;
      

  8.   

    同意楼上大宋的
    但要把数据表与combobox的index对应好
      

  9.   

    正宗的做法是:用TStringList.AddObject方法,Objects属性。
    用AddObject方法加字段到ListBox(ComboBox),然后用Objects数组
    属性读取存在StringList里的字段(Fields)。
    很简单的:
      请看TStringList.AddObject,Objects属性相关帮助,Delphi帮助有例子的。
      以下是我实际程序里的部分代码,要完整代码来信:[email protected]
    ------------
    procedure TForm1.FormShow(Sender: TObject);
    var i: integer;
    begin
      Table1.Close;
      Table1.Open;
      {--------显示能够查询的字段名列表-------}
      with lbx_field do begin
        clear;
        for i:= 0 to Table1.Fields.Count - 1 do
            Items.AddObject(Table1.Fields[i].DisplayLabel , Table1.Fields[i]);//将姓名,性别等写入listBox
      end;  Panel_condition.Visible:= false;
      Panel_value.Visible:= false;
      lbx_field.ItemIndex:= -1;  
    end;
    --------------------
    procedure TForm1.lbx_fieldClick(Sender: TObject);
    var F_Field: TField;
    begin
    QueryField:= lbx_Field.Items.Objects[lbx_Field.ItemIndex] as TField;
      {-------从表里查出当前选择的字段所有值加到lbx_value准备让用户选择-------}
      with Query_temp do begin
        Close;
        SQL.Clear;
        SQL.Add('select distinct ' + QueryField.FieldName + ' from ' +
          Table1.TableName + '''');
        Open;
        First;
        lbx_value.Clear;
        while not Eof do begin
          if not FieldByName(QueryField.FieldName).IsNull then
            lbx_value.Items.Add(FieldByName(QueryField.FieldName).AsString);
          Next;
        end;
     end;end;//给分吧!仲秋Happy!!!:)