大家好,小弟是个初学者,想做一个动态联动的combox,例如:大类combox1有:“汽车”“电视”“手机”小类为会根据大类combox1选择的选项,自动产生相应的选择,如果选择大类“汽车”那么小类会自动出现“宝马”“奔驰”“雷克萨斯”等等。

解决方案 »

  1.   

    1.首先你要设置好大类及各大类下包含的小类,将其保存到数据库或配置文件中
    2.选择大类时,通过combobox的onchange事件,自动生成小类
      

  2.   

    如果存放在配置文件中,参考代码var
      fl:TIniFile;
      s:string;
      i:integer;
    begin
      fl:=TIniFile.Create(self.vg_path+'DataDictionary.ini');
      s:=combobox1.text;//大类
      s:=fl.ReadString(s,'type','');
      combobox2.items.clear;
      if s<>'' then
        ExtractStrings(['|'],[],PChar(s),self.combobox2.Items);
      fl.Free;
    end;
      

  3.   

    存放在数据库中,参考代码var
      s,s1:string;
    begin
      s:=self.combobox1.text;//大类
      self.combobox2.items.clear;
      self.ADOQuery1.Close;
      self.ADOQuery1.Connection:=self.ADOConnection1;
      self.ADOQuery1.SQL.Clear;
      Self.ADOQuery1.SQL.Add('select * from lb where lei=:s1');
      Self.ADOQuery1.Parameters.ParamByName('s1').Value:=s;
      Self.ADOQuery1.Open;
      Self.ADOQuery1.First;
      while not Self.ADOQuery1.Eof do
      begin
        s1:=self.ADOQuery1.FieldByName('type').AsString;//小类
         self.combobox2.items.add(s1);
        self.adoquery1.next;
      end;