各位:
   想请教一问题,在一模块中使用了Combobox1和Edit1两个控件,combobox1空件连接数据表(包含:Dep和Name两个字段),数据表结构如下:
    Dep         Name
    MIS         123
    HRA         456
    ME          789
问题是想在模块中选择Combobox1的下拉列表中的MIS或HRA在Edit1中显示相对应的Name值:123或456等?请帮忙解决?
我的代码如下(我只做了Combobox1连接到数据表):
procedure TEmailUser.FormCreate(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Add('select dep,name from deplr');
  ADOQuery1.Open;
  Combobox1.Clear;
  while not ADOQuery1.Eof do
  begin
    combobox1.Items.Add(ADOQuery1.fieldbyname('dep').AsString);
    ADOQuery1.Next;
  end;
end;

解决方案 »

  1.   

    procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
    with adoquery1 do begin
      close;
      sql.clear;
      sql.add('select * from deplr where Dep=:temp');
      Parameters.ParamByName('temp').value:=combobox1.text;
      open;
      edit1.Text:=fieldbyname('Name').asstring;
      close;
    end;//end with
    end;
      

  2.   

    放两个Combobox控件,一个设为可见的,另一个的visible设为falseprocedure TEmailUser.FormCreate(Sender: TObject);
    begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Add('select dep,name from deplr');
      ADOQuery1.Open;
      Combobox1.Clear;
      while not ADOQuery1.Eof do
      begin
        combobox1.Items.Add(ADOQuery1.fieldbyname('dep').AsString);
        combobox2.Items.Add(ADOQuery1.fieldbyname('name').AsString);
        ADOQuery1.Next;
      end;
    end;procedure TFrmLogin.ComboBox1Change(Sender: TObject);
    begin
        ComboBox2.ItemIndex:=ComboBox1.ItemIndex;
        Edit1.Text:=ComboBox2.Text;
    end;
      

  3.   

    已OK! gxgyj(Jackson...)
    再来我想问一下在父窗体(MDIForm)中,如何用代码定义子窗体显示的位置?
      

  4.   

    type
      TDep = Record
        Name : string;
      end;implementation{$R *.dfm}procedure TEmailUser.FormCreate(Sender: TObject);
    var
      Dep: PDep;
    begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Add('select dep,name from deplr');
      ADOQuery1.Open;
      Combobox1.Clear;
      while not ADOQuery1.Eof do
      begin
        New(Dep);
        Dep.Name := ADOQuery1.fieldbyname('Name').AsString;
        ComboBox1.Items.AddObject(ADOQuery1.fieldbyname('dep').AsStringTObject(Dep));          
        ADOQuery1.Next;
      end;
    end;procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
      Edit1.text := PDep(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Name;
    end;