Текущий архив: 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