在stringgrid中输入记录,保存之前判断一下,stringgrid中是否有重复值,我想先把单元格中的值存在stringlist中,然后比较,但不知道如何做(我是在输入完多行后,在做判断)
急,多谢了

解决方案 »

  1.   

    假设你已经把它写入到 stringlist 中了,可用 stringlist的 IndexOf() 方法来查找有没有指定项procedure TForm1.FormCreate(Sender: TObject);
    var
        SL:TStringList;
    begin
        if SL.IndexOf('coach') <>-1 Then showmessage('已经存在');
    end;
      

  2.   

    //其中aa是TlistString类型
    var  i  :Integer;
      bb :String;
    begin  bb :='你好';
      for  i :=0 to aa.Count-1 do
      begin
         if  bb=aa.Strings[i] then
         begin
           ShowMessage('存在');
           exit;
         end;
      end;
       aa.Add(bb) ;
     end;
      

  3.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
     i:Integer;
     temp:String;
     Stringlist2:TStringList;
    begin
      Stringlist2 := TStringList.Create;
      Stringlist2.clear;
      Stringlist1.Sorted := true; //先排序  
      for i:=0 to Stringlist1.Count-1 do
      begin
        temp := Stringlist1.Strings[i];
        if Stringlist2.IndexOf(temp) = -1 then
          Stringlist2.Add(temp) ;
      end;
      for i:=0 to Stringlist2.Count-1 do
      begin
        ShowMessage(Stringlist2.Strings[i]);
      end;end;
    这么得到的Stringlist2就是你要的没有重复的了
      

  4.   

    TStringList有一个属性Duplicates,可以设为以下值: dupIgnore 不允许有重复的字符串
     dupAccept 允许有重复的字符串
     dupError 加入一个重复的字符串将触发EListError异常