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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2008, 10:41   #1
za4ot
Пользователь
 
Регистрация: 06.04.2008
Сообщений: 22
По умолчанию проблема с показом формы после трея

как сделать так чтобы после:
Код:
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
  ShowWindow(handle,SW_HIDE);
  TrayIcon1.Visible:=true;
end;
по нажатию кнопки из popup menu привязанной к ttrayicon форма появлялась на экране, в панели задач и становилась активным окном

самое смешное, что когда обрабатываю событие onClick на трейикон все работает так как надо:
Код:
procedure TForm1.TrayIcon1Click(Sender: TObject);
begin
  Application.Restore;
  application.BringToFront;
  TrayIcon1.Visible:=false;
end;
(*)
т.е. форма появляется и становится активным окном

предупреждая вопросы "а пробовал такой же код вписать в обработчик нажатия кнопки в popup menu" - пробовал, не работает (честно не понимаю почему )

пробовал сделать так:
Код:
procedure TForm4.NN4Click(Sender: TObject);
begin
  ShowWindow(handle,SW_SHOW);
  TrayIcon1.Visible:=false;
end;
но после данной операции форма появляется только в панели задач

поэтому у меня 2 вопроса:
1) как сделать чтобы она появилась на экране и стала активной?
2) почему код помеченный (*) не работает для кнопки popup menu?

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

Последний раз редактировалось za4ot; 21.08.2008 в 10:48.
za4ot вне форума Ответить с цитированием
Старый 21.08.2008, 11:26   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

У меня вот так вот всё работает:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject); // Процедура "сворачивания" в трей
begin
  Form1.Hide;
  TrayIcon1.Visible:=true;
end;

procedure TForm1.N1Click(Sender: TObject); // "Разворачивание по Popup'у в трее
begin
  Form1.Show;
  Application.BringToFront;
  TrayIcon1.Visible:=false;
end;

procedure TForm1.TrayIcon1Click(Sender: TObject); // "Разворачивание по клику по иконке в трее
begin
  N1Click(self);
end;

Последний раз редактировалось FaTaL; 21.08.2008 в 11:28.
FaTaL вне форума Ответить с цитированием
Старый 21.08.2008, 11:35   #3
za4ot
Пользователь
 
Регистрация: 06.04.2008
Сообщений: 22
По умолчанию

FaTaL, делаю как Вы предлагаете форма так же остается в панели задач

п.с. использую codegear rad studio 2007
za4ot вне форума Ответить с цитированием
Старый 21.08.2008, 12:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Загляни сюда: http://programmersforum.ru/showthrea...estoreMainForm
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.08.2008, 12:35   #5
za4ot
Пользователь
 
Регистрация: 06.04.2008
Сообщений: 22
По умолчанию

Stilet благодарю

если кому интересно, то вот решение проблемы:
Код:
  ShowWindow(handle,SW_SHOW);
  Application.ShowMainForm := True;
  ShowWindow(Application.Handle, SW_RESTORE);
  ShowWindow(Application.MainForm.Handle, SW_RESTORE);
za4ot вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить действия после отображения формы zhefran Общие вопросы Delphi 15 14.08.2008 16:50
Форма поверх трея Ozerich Общие вопросы Delphi 1 04.08.2008 03:05
Обработка сообщений иконки трея The_Darkness Win Api 18 15.07.2008 16:07
Как сделать чтобы динамически созданные объекты оставались после закрытия формы? AHAPXUCT2007 Общие вопросы Delphi 7 28.09.2007 08:46
Проблема тормозит DVD при и после монтажа DmitriyUSER Свободное общение 3 02.02.2007 20:27