【发布时间】:2013-07-04 04:26:54
【问题描述】:
在 FireMonkey (Delphi XE3) 应用程序中发生以下情况。看下面的代码(这只是一个虚拟的例子,用来说明问题):
procedure TForm1.Button4Click(Sender: TObject);
var
i: Integer;
begin
Button4.Enabled:= false; //This should gray-out the button
// get busy for some time
for I := 0 to 100000000000 do
begin
end;
Button4.Enabled:= true;
end;
我希望 Button4 在进入“for”循环所代表的繁忙操作之前会变灰。尽管如此,事实并非如此。
在 OnClick 处理程序执行结束时,按钮“似乎没有反应”到 Button4.Enabled:= false。为什么?
我该如何解决它?
这在 VCL 中工作得很好。
谢谢。
【问题讨论】:
-
MainThread 仅用于 UI 任务,不适用于长时间运行的计算任务。这必须在后台任务中完成。在后台任务完成后禁用后台任务启动按钮并启用它
标签: delphi firemonkey delphi-xe3