在一个搜索文件的界面里,有一组搜索的设置条件,如区分大小写等条件,
点击搜索按扭,创建一个搜索线程,将搜索到的满足条件的文件放到列表
框里,这时我想改变搜索策略, 将区分大小写的条件取消,在点击立刻生效的
按扭,这时我希望看到的是列表框的结果是前一部分是我满足区分大小写条
件的,后一部分是取消满足区分大小写条件的,请问大家如何实现.

解决方案 »

  1.   

    简单做的话,你的线程可以这么做:type
      MyThread = class(TThread)
      private
        FCaseSensitive, FStateChanged: Boolean;
      protected
        procedure Execute; override;
      public
        procedure IgnoreCase(CaseSensitive, StateChanged: Boolean);
        constructor Create(CreateSuspended: Boolean);
      end;implementation{ MyThread }constructor MyThread.Create(CreateSuspended: Boolean);
    begin
      inherited;
      FCaseSensitive := False;
      FStateChanged := False;
    end;procedure MyThread.Execute;
    begin
      //……
      if FStateChanged then
        //根据FCaseSensitive重新设置搜索条件中的字符大小写敏感属性
      else
        //继续按照原来的条件搜索
    end;procedure MyThread.IgnoreCase(CaseSensitive, StateChanged: Boolean);
    begin
      FCaseSensitive := CaseSensitive;
      FStateChanged := StateChanged;
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————