Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

При решении предыдущей задачи я руководствовался, прежде всего, соображениями универсальности. Как я уже говорил, это фрагмент реального приложения. Т.е. я заранее не знал, где и когда у меня может быть выведено модальное сообщение или форма. А искать все вызовы – довольно хлопотная работа.

Поэтому я задействовал TApplicationEvents и два события этого компонента – onModalBegin и onModalEnd. Абсолютно ничего сложного,

 

procedure TForm1.ApplicationEvents1ModalBegin(Sender: TObject);
begin
 flg:= True;
end;

procedure TForm1.ApplicationEvents1ModalEnd(Sender: TObject);
begin
 flg:= False;
end;

procedure TForm1.TrayIcon1Click(Sender: TObject);
begin
if not flg then
ShowMessage('');
end;

Но этот код будет работать при любом вызове модальной формы или окна, и, соответственно, больше ничего в коде написанной ранее программы менять не придется.

Исходный код.


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

9 комментариев: Разминка для ума #0. Моё решение.

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика