Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.10;
Скачать: CL | DM;

Вниз

Помогите с TryIcon!   Найти похожие ветки 

 
[BAD]Angel ©   (2002-05-23 16:09) [0]

Уважаемые мастера!
У меня вопрос: можно ли не создавая формы вывести иконку моей программы в SystemTray?
Пример: При запуске программы в SysTray"е появляется иконка, а дальше по ней кнопкой мыши тыкаешь и PopupMenu выскакивает! По сути, мне форма не нужна...

Если можно, подскажите, как это осуществить! Желательно поподробнее!

Заранее спасибо!


 
Anatoly Podgoretsky ©   (2002-05-23 16:14) [1]

Кто на новенького?

Пиши программу юез формы, раз тебе она не нужна, но тогда зачем нужна иконка?


 
Song ©   (2002-05-23 16:17) [2]

http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1020241631


 
[BAD]Angel ©   (2002-05-23 16:20) [3]

[Anatoly Podgoretsky (c)]

А конкретно, можно привести код программы без формы, чтобы в трее иконка висела?


 
Fredericco ©   (2002-05-23 16:23) [4]

Есть такая компонента TTrayIcon. Поищи в кладовке или в новостях VCL. Там можно и иконку в трей добавить и PopupMenu к ней привязать. А что бы форму скрыть перед Application.CreateForm(TForm1, Form1); пропиши Applicaton.ShowMainForm:=False;


 
[BAD]Angel ©   (2002-05-23 16:26) [5]

Спасибо, попробую...


 
Song ©   (2002-05-23 16:26) [6]

>> А конкретно, можно привести код программы без формы, чтобы в трее иконка висела?

Чтобы убрать программу- Application.ShowMainForm:=False;
Добавить значок: TShellNotifyIcon, NIM_ADD


 
Sasha9 ©   (2002-05-23 16:29) [7]

хотябы одно окно у тебя должно быть чтобы реагировать на сообщения от иконки, поэтому просто поставь форме visible:=false и в dpr файле перед Application.CreateForm поставь Application.ShowMainForm:=false


 
Sasha9 ©   (2002-05-23 16:30) [8]

упс ....... неуспел


 
[BAD]Angel ©   (2002-05-23 17:14) [9]

Я слышал, что иконку можно создавать в самом DPR файле, без формы и других VCL компонент! Такое возможно?


 
Толик ©   (2002-05-23 17:26) [10]

У Application"а всегда есть скрытое окно, оно и может ловить всякие сообщения, в т.ч. и от иконки в трее.

for all
Народ, если пишут, что форма не нужна, зачем советовать Form1.Visible := FALSE????? Её вообще НЕ НАДО СОЗДАВАТЬ!!!


 
[BAD]Angel ©   (2002-05-23 17:31) [11]

[Толик ©]

А как тогда выйти из положения?


 
neodiX ©   (2002-05-23 17:53) [12]

Используй TService


 
Song ©   (2002-05-23 17:56) [13]

Ну не создавай тогда формы, добавляй значок в dpr"e... Какие проблемы-то?


 
Толик ©   (2002-05-24 10:50) [14]

to [BAD]Angel ©:
Иконка в tray добавляется через Shell_NotifyIcon. Первый параметр - то, что надо сделать с этой иконкой (см. help, там всё понятно), второй параметр типа NOTIFYICONDATA. В эту структуру в качестве окна, которое должно получать сообщения от иконки передать Application.Handle.

Если не хочется изобретать велосипед, можно посмотреть в библиотеке RxLib есть компонент TRxTrayIcon. Можно посмотреть как он реализован и использовать его, правда, поскольку форма не нужна, то его придётся создавать динамически в файле проекта(надеюсь, с этим проблем не возникнет? :)) Поскольку в приложении форм быть не должно, то для запуска приложения использовать Application.Run не получится. Придётся в файле проекта написать руками

AddExitProc(DoneApplication);
repeat
Application.HandleMessage
until Application.Terminated;

На самом деле этот цикл не что иное как ф-я Application.Run(), но без упоминания о формах (см. исходники TApplication). Ну и не забыть после этого цикла удалить созданный руками компонент.
Вот собственно и всё...


 
[BAD]Angel ©   (2002-05-30 14:44) [15]

Song © - А КАК ДОБАВИТЬ значок в dpr??????



Страницы: 1 вся ветка

Текущий архив: 2002.06.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
8-30921
BJValentine
2002-01-26 14:43
2002.06.10
Не смейтесь, но я этого не знаю


7-31019
datch
2001-12-03 10:06
2002.06.10
Компьютерный клуб


6-30959
SerVS - S
2002-03-27 10:50
2002.06.10
Как получить инфу о файле на сервере?


6-30961
Hecker
2002-03-28 17:43
2002.06.10
Чем отличаются?


1-30740
Miron12
2002-05-28 18:37
2002.06.10
ошибка Index is out of bounds