Внешний вид сайта:

Отключение события на время выполнения задачи

Как сделать, чтобы событие на некоторое время блокировалось и не выполнялось? Допустим, у Вас есть кнопка, при нажатии на которую, выполняется какая-то задача и Вы не хотите, чтобы пользователь в это время еще раз нажал на эту кнопку или сделал двойной щелчок на этой кнопке. Можно сделать задержку реагирования на нажатие кнопки на время выполнения задачи.

Ниже приведена реализация задержки выполнения процедуры события:

procedure TForm1.Button1Click(Sender: TObject) ;
var
   SavedOnClick : TNotifyEvent;
begin
   SavedOnClick := TControl(Sender).OnClick;
   { Отключаем событие OnClick кнопки }
   TControl(Sender).OnClick := nil;
   try
     // Код, который выполняется какое-то время
   finally
     { Опять позволяем кнопке выполнять действие }
     TControl(Sender).OnClick := SavedOnClick;
   end
end;

Комментарии

Нет комментариев. Ваш будет первым!