В приложении FireMonkey (Delphi XE3) происходит следующее. Посмотрите на следующий коде (это просто фиктивный пример, чтобы проиллюстрировать проблему):Почему TButton.enable не дает ожидаемого результата в этом случае?
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 получить неактивные перед входом в занятые операции, представленных «для» петли. Тем не менее, это не так.
К концу выполнения обработчика OnClick кнопка не реагирует на кнопку Button4.Enabled: = false. Зачем?
Как это решить?
Это прекрасно работает в VCL.
Спасибо.
MainThread предназначен только для задач пользовательского интерфейса, а не для длительных задач расчета. Это нужно сделать в фоновом задании. Отключите кнопку запуска фоновой задачи и включите ее, когда фоновая задача будет завершена. –