Трей с контекстным меню
От: Exhibit Россия  
Дата: 03.03.08 08:29
Оценка:
Здравствуйте.

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

1. При запуске программа не должна открываться как как обычное приложение, а появляться в трее (при этом не так, что окно появляется на доли секунды, а лишь после этого минимизируется).
2. При правом щелчке на иконку трея рядом с ней появляется контекстное меню. "Пункт 1...", "Пункт 2...", "Выход...". Каждый из пунктов вызывает соответствующую формочку. Получается, что это меню должно заменить основную форму.
3. Одна из форм должная появляться при даблклике на иконку трея.

Я честно покурил форумы насчет трея, но конкретно для такой задачи ничего подходящего не нашел.

Помогите, пожалуйста.
Re: Трей с контекстным меню
От: 1kulibin Украина http://ua.linkedin.com/pub/oleg-anedchenko/25/111/83b
Дата: 03.03.08 09:48
Оценка:
Здравствуйте, Exhibit, Вы писали:

E>Здравствуйте.


E>Написал небольшую софтинку, простая бизнес-логика, всего две формы. Но тут появились новые требования:


E>1. При запуске программа не должна открываться как как обычное приложение, а появляться в трее (при этом не так, что окно появляется на доли секунды, а лишь после этого минимизируется).

E>2. При правом щелчке на иконку трея рядом с ней появляется контекстное меню. "Пункт 1...", "Пункт 2...", "Выход...". Каждый из пунктов вызывает соответствующую формочку. Получается, что это меню должно заменить основную форму.
E>3. Одна из форм должная появляться при даблклике на иконку трея.

E>Я честно покурил форумы насчет трея, но конкретно для такой задачи ничего подходящего не нашел.


E>Помогите, пожалуйста.


как-то я случайно наткнулся на такую интересную весч, как ApplicationManeger — не знаю правильно ли пишу — сейчас нет времени искать. Сам для себя думал как у вас сделать — с трея меню. Провёл пару экспериментов — токо до внедрения этой светлой идеи руки не дошли . А эксперименты показали, что всё работает замечательно — именно в точности что вам надо.
Методика:
1. Вместо главной формы пишем класс-наследник етого ApplicationManeger
2. В нём создаём трейикон — в коде. Ну и менюхи все и т.п.
3. Запускаем аппликейшн методом Run — токо вместо допустим MainForm в аргумент ему даём ApplicationManeger.
Таким образом в принципе можно и скомбинировать тип запуска — и например в настройках задавать — или с трейикон или с формы. А в коде ApplicationManeger-а создавать менюху — и уже в зависимости от типа запуска лепить её либо на трейикон — либо на форму. Как-то так вобщем. Токо там получается если так делать, то наверное вам надо будет отслеживать закрытие главной формы — и завершать работу приложения — если конечно выбран запуск с формы.
Изините если переврал немного чего в терминах — но думаю основное ясно — дальше сами разберётесь. Если нет — свистите — как будет время найду оте свои эксперименты — гдето они вроде валяются.
Re: Трей с контекстным меню
От: chestr  
Дата: 03.03.08 15:15
Оценка:
Здравствуйте, Exhibit, Вы писали:

E>Здравствуйте.


E>Написал небольшую софтинку, простая бизнес-логика, всего две формы. Но тут появились новые требования:


E>1. При запуске программа не должна открываться как как обычное приложение, а появляться в трее (при этом не так, что окно появляется на доли секунды, а лишь после этого минимизируется).

E>2. При правом щелчке на иконку трея рядом с ней появляется контекстное меню. "Пункт 1...", "Пункт 2...", "Выход...". Каждый из пунктов вызывает соответствующую формочку. Получается, что это меню должно заменить основную форму.
E>3. Одна из форм должная появляться при даблклике на иконку трея.

E>Я честно покурил форумы насчет трея, но конкретно для такой задачи ничего подходящего не нашел.


E>Помогите, пожалуйста.


Гугл сразу выдал ответ.
Re[2]: Трей с контекстным меню
От: 1kulibin Украина http://ua.linkedin.com/pub/oleg-anedchenko/25/111/83b
Дата: 03.03.08 17:00
Оценка:
Здравствуйте, chestr, Вы писали:

C>Гугл сразу выдал ответ.


я первее гугла выдал ответ — и лучше . а в принципе суть та же — как говорится теже органы — токо с боку
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.