Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Завтра :

День славянской письменности и культуры


Программа в трее рядом с часиками.


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Пол:Муж alphons
Новичок




Зарегистрирован: 06.05.2007
Сообщения: 21

СообщениеВс, 06-Май-2007 23:12    Заголовок сообщения: Программа в трее рядом с часиками.
Цитата

Всю жизнь мечтал чтоб моя программа
красовалась рядом с Нортоном и часиками в трее.
Плиз осуществите мечту идиота подскажите как заставить
свою программу висеть в трее.
В начало
Посмотреть профиль Отправить личное сообщение
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеПн, 07-Май-2007 0:59 
Цитата

Да, вот именно за этот вопрос обычно убивают каким-нибудь болезненным способом :)
Либо "ручками" с помощью функции Shell_NotifyIcon, либо какую-нибудь компоненту типа TrxTrayIcon использовать (их вообще море написато)

_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеПн, 07-Май-2007 8:38 
Цитата

и в делфи уже есть готовый компонент.
_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж alphons
Новичок




Зарегистрирован: 06.05.2007
Сообщения: 21

СообщениеВт, 08-Май-2007 6:34 
Цитата

Не могли б вы подсказать адреса, которые по вашему мнению являются самыми полезными хранилищами компонентов.
В начало
Посмотреть профиль Отправить личное сообщение
CyberMerlin
Гость







СообщениеВт, 08-Май-2007 9:54 
Цитата

to alphons
все зависит от того что ты хочешь иметь
тут кто-то выкладывал чего у кого есть
могешь поискать и выбрать
а так в поисковике запроси
(кажется Gelios имел ввиду RxLib - )

вообще старайся не юзать лишний раз компонентины
не буду дублироваться
http://forum.vingrad.ru - только поищи - там есть уже ответ готовый
(как говорится только проглотить надо, все разжевано)
В начало
Пол:Муж orlov_ds
Модератор


Возраст: 31
Знак зодиака: Рак
Зарегистрирован: 14.04.2004
Сообщения: 1723
Откуда: Новосибирск
СообщениеВт, 08-Май-2007 10:12 
Цитата

В Raize есть такой компонент.
_________________
Хорошо излагает, зараза! Учитесь, Киса!
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
CyberMerlin
Гость







СообщениеВт, 08-Май-2007 15:54 
Цитата

тааак
только сейчас обратил внимание на косяки в работе своей прожки
(вопрос именно здесь размещаю потому как ошибка накладывается и на обработку работы с иконкой в трее.. далее объясню если ..)

по созданию главной формы:
application.Minimize;
Form1.AlphaBlendValue :=1;

затем по таймеру:
timer1.interval :=1;
OnTimer:

If Form1.AlphaBlendValue =1 then begin
Form1.Show;
Form1.WindowState :=wsNormal;
Form1.AlphaBlendValue :=255;
SetForegroundWindow(form1.Handle);
end;

ВНИМАНИЕ вопрос: когда оконце появилось, на панели задач кликаю правой кнопкой и появляется меню (Восстановить .. Закрыть) беспокоит именно первое слово, вместо него должно быть СВЕРНУТЬ!! почему так?
как вылечить?
В начало
Пол:Муж spoon
Энтузиаст


Возраст: 30
Знак зодиака: Телец
Зарегистрирован: 10.03.2005
Сообщения: 337
Откуда: Архипелаг ГУЛАГ
СообщениеЧт, 10-Май-2007 5:50 
Цитата

Gelios писал(а):
и в делфи уже есть готовый компонент.

CyberMerlin писал(а):
(кажется Gelios имел ввиду RxLib - )

Наверное Gelios имел ввиду компонент TTrayIcon из Delphi 2006...

_________________
Верь людям - только так можно узнать кому стоит верить. (c) spoon
Не можешь держать язык за зубами, держи языком зубы:)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеЧт, 10-Май-2007 6:07 
Цитата

да, Gelios имел ввиду компонент Ttrayicon из Delphi 2006 и выше :)
_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
CyberMerlin
Гость







СообщениеЧт, 10-Май-2007 14:04 
Цитата

вылечил
следующей последовательностью команд

delphi:
  1.  
  2. showWindow(Application.Handle,SW_SHOWNORMAL);
  3. showWindow(Form1.Handle,SW_SHOWNORMAL);
  4.  


Добавлено спустя 48 минут 31 секунду:

теперь другой вопрос
delphi:
  1.   procedure minimuz(var msg:TMessage); message WM_SHOWWINDOW;
  2.  
  3.  
  4. procedure TForm1.minimuz(var msg:TMessage);
  5.  var Nim :TNotifyIconData;
  6. begin
  7.   If msg.LParam = WS_MINIMIZE then begin
  8.    ShowMessage('fgfgfdg--1111111111');
  9.     Form1.Caption :='---------';
  10.   end;
  11.   If msg.LParam = SW_SHOWNORMAL then begin
  12.     ShowMessage('fgfgfdg');
  13.     SendMessage(form1.Handle,0,0,WM_LBUTTONUP);


почему у меня при восстановлении из значка в окно сообщение появляется,
а при сворачивании (по клику на кнопке в панели задач) сообщение не появляется.... ?

вопрос 2: SendMessage(form1.Handle,0,0,WM_LBUTTONUP);
мной (точнее процедурой - procedure Згдлук(var Msg :TMessage); message wm_user+1;) не получается?

у кого-н есть описалово wm_user+## на кажое такое сообщение в диапазоне от 000000 до FFFFFF ?
пните кто-н в нужную сторону.
В начало
Пол:Муж spoon
Энтузиаст


Возраст: 30
Знак зодиака: Телец
Зарегистрирован: 10.03.2005
Сообщения: 337
Откуда: Архипелаг ГУЛАГ
СообщениеПт, 11-Май-2007 6:53    Заголовок сообщения: Re: Программа в трее рядом с часиками.
Цитата

alphons писал(а):
Всю жизнь мечтал чтоб моя программа
красовалась рядом с Нортоном и часиками в трее.
Плиз осуществите мечту идиота подскажите как заставить
свою программу висеть в трее.

Я делал так:
delphi:
  1. procedure TForm1.CreateTrayIcon(n: Integer);
  2. var
  3.   nData: TNotifyIconData;
  4. begin
  5.   with nData do
  6.   begin
  7.     cbSize:= SizeOf(TNotifyIconData);
  8.     Wnd:= Self.Handle;
  9.     uID:= n;
  10.     uFlags:= NIF_ICON or NIF_MESSAGE or NIF_TIP;
  11.     uCallbackMessage:= WM_MYTRAYNOTIFY;
  12.     hIcon:= Application.Icon.Handle;
  13.     szTip:= 'Kill ATS Loger';
  14.   end;
  15.   Shell_NotifyIcon(NIM_ADD, @nData);
  16. end;

delphi:
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.   CreateTrayIcon(1);
  4. end;

delphi:
  1. procedure TForm1.DeleteTrayIcon(n: Integer);
  2. var
  3.   nData: TNotifyIconData;
  4. begin
  5.   with nData do
  6.   begin
  7.     cbSize:= SizeOf(TNotifyIconData);
  8.     Wnd:= Self.Handle;
  9.     uID:= n;
  10.   end;
  11.   Shell_NotifyIcon(NIM_DELETE, @nData);
  12. end;

delphi:
  1. procedure TForm1.FormDestroy(Sender: TObject);
  2. begin
  3.   DeleteTrayIcon(1);
  4. end;

_________________
Верь людям - только так можно узнать кому стоит верить. (c) spoon
Не можешь держать язык за зубами, держи языком зубы:)
В начало
Посмотреть профиль Отправить личное сообщение
CyberMerlin
Гость







СообщениеПт, 11-Май-2007 9:49 
Цитата

Цитата:
http://www.forum.chertenok.ru/viewtopic.php?p=42994#42994

разобрался и вылечил...

to spoon
а в чем разница между
hIcon:= Application.Icon.Handle;
и
hIcon:= Self.Icon.Handle;
??
В начало
Alekc
Частый гость




Зарегистрирован: 01.04.2007
Сообщения: 28

СообщениеПт, 11-Май-2007 12:17 
Цитата

to CyberMerlin
Рекомендую вдумчиво почитать МСДН на тему сообщений виндовс.

Цитата:
вопрос 2: SendMessage(form1.Handle,0,0,WM_LBUTTONUP);
мной (точнее процедурой - procedure Згдлук(var Msg :TMessage); message wm_user+1 не получается?

Какая связь между WM_LBUTTONUP и wm_user+1 ? Какое сообщение Вы посылаете, такое надо и обрабатывать...

Цитата:
а в чем разница между
hIcon:= Application.Icon.Handle;
и
hIcon:= Self.Icon.Handle;

В том, что Self - это текущий объект, и в 90% случаев это будет наследник TForm.
В начало
Посмотреть профиль Отправить личное сообщение
CyberMerlin
Гость







СообщениеСб, 12-Май-2007 22:11 
Цитата

Цитата:
hIcon:= Application.Icon.Handle;

тогда лучше self юзать?

в msdn касаемл wm_user + ## ничего не нашел
знаб только что можно присвоить любому сообщению эквивалент с любой цифрой - аля моя переменная для api messag
В начало
Пол:Муж spoon
Энтузиаст


Возраст: 30
Знак зодиака: Телец
Зарегистрирован: 10.03.2005
Сообщения: 337
Откуда: Архипелаг ГУЛАГ
СообщениеВт, 15-Май-2007 6:51 
Цитата

CyberMerlin писал(а):
Цитата:
hIcon:= Application.Icon.Handle;

тогда лучше self юзать?

Я бы заюзал всё таки Application...

_________________
Верь людям - только так можно узнать кому стоит верить. (c) spoon
Не можешь держать язык за зубами, держи языком зубы:)
В начало
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100