线程与主线程的交互问题

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


...全文
75 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nyf1220 2003-09-21
  • 打赏
  • 举报
回复
study
lxpbuaa 2003-09-21
  • 打赏
  • 举报
回复
简单做的话,你的线程可以这么做:

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;

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
wzds2000 2003-09-20
  • 打赏
  • 举报
回复
同意bluenightsky()的意见。
hkbarton 2003-09-20
  • 打赏
  • 举报
回复
bluenightsky()说的很好,这样应该可以的
outer2000 2003-09-20
  • 打赏
  • 举报
回复
楼上可以,把条件设置为THREAD的一个PUBLIC的属性好象也可以;
bluenightsky 2003-09-20
  • 打赏
  • 举报
回复
用一个全局标志变量,线程运行时一直判断,如果标志标量符合一定条件就区分大小写,否则不区分大小写

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧