用add的方法,添加时候,判断一下有没有重复的,给你一段bcb的代码,结束的时候用SaveToFile的方法保存。

解决方案 »

  1.   

    int j=0;
    //判断列表中是否有重复
       if(ComboBox1->ItemIndex==-1)  
       {
         for (int i=0;i<ComboBox1->Items->Count;i++)
         {
           if (ComboBox1->Text != ComboBox1->Items->Strings[i]){j=0;break;}
           else j=1;
          }
        }
       if(j==ComboBox1->Items->Count)ComboBox1->Items->Add(ComboBox1->Text);
      

  2.   

    faint,代码竟然给错了:(
    int j=0;
    //判断列表中是否有重复
      if(ComboBox1->ItemIndex==-1)  
      {
        for (int i=0;i<ComboBox1->Items->Count;i++)
        {
          if (ComboBox1->Text != ComboBox1->Items->Strings[i]){j=0;break;}
          else j=1;
          }
        }
      if(j)ComboBox1->Items->Add(ComboBox1->Text);
      

  3.   

    1、用注册表(用TRegistry)或INI文件(用TIniFile)保存该ComboBox的项,在form的OnCreate中读取并初始化ComboBox,在OnDestroy中保存ComboBox各项及当前项数,注册表或INI中,保存三种值:最大项数、当前项数和各项值,如:
      MaxCount=20
      CurCount=8
      1=...
      2=...
      ...
      8=...
    2、在ComboBox的OnExit中如下处理(你也可根据你的需要在其他地方执行):
    procedure TForm1.ComboBox1Exit(Sender: TObject);
    var s: String;
    begin
      s := Trim(Combobox1.Text);
      Combobox1.Text := s;
      If s = '' Then Exit;  With Combobox1.Items Do
        If IndexOf(s) < 0 Then
        Begin
          If Count = MAXCOUNT Then Delete(0);
          Combobox1.Items.Add(s);
        End;
    end;