Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2011, 13:55   #1
Ecosasha
Форумчанин
 
Регистрация: 22.05.2009
Сообщений: 248
По умолчанию не работает событие minimaze после скрытия и восстановления формы

Проект создан в Дельфи 7.
на форме размещен компонент RxTrayIcon. в событии OnClick прописывается следующий код:

Код:
procedure TFMain.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FMain.Visible then FMain.visible:=false else FMain.Visible:=true;
end; {RxTrayIcon1Click}
после этого, как только форма была скрыта и показана обратно, перестает работать кнопка minimaze (свертывание) приложения.
В чем дело? Почему так происходит? В чем искать причину?

P.S. Думал, сначала, что из-за того что переопределял события
Код:
  {событие при минимизации формы}
  Application.OnMinimize:=ApplicationMinimize;
но даже после того, как закомментировал, все по прежнему. .

В целом суть в том, чтобы при minimaze скрывать программу в трей, а потом при клике на иконку в трее показывать. В целом все это работает, но почему-то перестает работать minimaze? Кто-нибудь сталкивался с этим?
Ecosasha вне форума Ответить с цитированием
Старый 09.02.2011, 16:14   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Для начала - строка
if FMain.Visible then FMain.visible:=false else FMain.Visible:=true;
легко заменяется на
Visible:=not Visible;
Но это не поможет, поскольку в обработчике должно быть не это, а другое :
Код:
procedure TFMain.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Application.Restore;
end;
Вам останется только позаботиться о видимости иконки в трее...
asmodey1 вне форума Ответить с цитированием
Старый 09.02.2011, 16:55   #3
Ecosasha
Форумчанин
 
Регистрация: 22.05.2009
Сообщений: 248
По умолчанию

Да действительно, проблема была решена при помощи:

Код:
Application.Restore;
Поэтому код переделал на:

Код:
 if FMain.Showing then FMain.Hide else
  begin
    Fmain.Show;
    Application.Restore;
  end;
Все заработало нормально. Тему можно закрывать, вопрос решен.

P.S.
to asmodey1 большое спасибо за помощь. (+)
Ecosasha вне форума Ответить с цитированием
Старый 09.02.2011, 17:33   #4
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Строка Fmain.Show; - совершенно лишняя...
Цитата:
Сообщение от Ecosasha Посмотреть сообщение
Дело в том, что я еще обрабатываю событие минимизации
Тогда понятно

Последний раз редактировалось asmodey1; 09.02.2011 в 20:16.
asmodey1 вне форума Ответить с цитированием
Старый 09.02.2011, 17:56   #5
Ecosasha
Форумчанин
 
Регистрация: 22.05.2009
Сообщений: 248
По умолчанию

Цитата:
Сообщение от asmodey1 Посмотреть сообщение
Строка Fmain.Show; - совершенно лишняя...
Дело в том, что я еще обрабатываю событие минимизации, то есть:

Код:
{переопределяем собитие для минимизацации приложения}
procedure TFMain.ApplicationMinimize(Sender: TObject);
begin
  FMain.Hide;
end; {ApplicationMinimize}
и естественно:

Код:
procedure TFMain.FormActivate(Sender: TObject);
begin
  {событие при минимизации формы}
  Application.OnMinimize:=ApplicationMinimize;

end; {Activate}
Поэтому, если просто Application.Restore ставить, то не срабатывает все до конца. Пробовал убирать FMain.Show, но тогда не показывает форму при клике на иконку в трее. .
Ecosasha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Bass.dll событие после окончания воспроизведения. ZBEP Мультимедиа в Delphi 4 30.01.2011 04:06
Событие OnMouseMove-сокрытие после показа (DELPHI) Dj_SheLL Помощь студентам 2 30.10.2010 22:18
событие после form.reset() Wicort JavaScript, Ajax 6 26.05.2010 16:10
Событие после открытия формы VistaSV30 Microsoft Office Access 2 29.01.2010 11:19
скрипт скрытия / отображения текста без перезагрузки (не работает в опере) vlad007 JavaScript, Ajax 12 10.11.2009 13:08