Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

System tray [D5, WinXP]


Justluser ©   (2002-07-04 18:31:00) 

Ребята помогите,я новичок:
Как сделать, чтобы программа сворачивалась в System tray


Mr. API   (2002-07-30 21:40:00) [1]

Могу прислать готовый пример использования Shell_NotifyIcon.

> Skywalker
const
WM_ICONNOTIFY = WM_USER+1;

На сколько я знаю, borland не рекомендует использовать сообщения, которые идут сразу после WM_USER, т. к. они могут использоваться уже самой программой для собственных нужд.


Ich Hasse   (2002-07-29 23:22:00) [2]

Заколебали с такими вопросами, они обсуждались не раз, хотя бы читайте все FAQ, и форумы...


quark   (2002-07-29 22:44:00) [3]

На adept.h1.ru есть исчерпывающее FAQ по этому поводу(library-delphi-windows). Заодно скачай исходник Clicker он в трей висит и посмотри.


а1   (2002-07-29 18:30:00) [4]

У меня так не проходит ругается на: message WM_ICONNOTIFY говорит что неправильная пропись form1(я все изменил что надо). Не знаю, помогите кто нибудь.


VID   (2002-07-04 19:21:00) [5]


> Skier © (04.07.02 18:54)
> >Justluser
> А за готовыми решениями можно сюда сходить :
> http://www.torry.net/trayicons.htm

или в UBPFD:
http://delphibase.endimus.com/?action=viewfunc&topic=appctrl&id=10239


Skywalker   (2002-07-04 19:03:00) [6]

2 qube
извеняюсь, не понял вопрос... :)

почему так?
потому что первый ShowWindow прячет окно,
а второй - прячет окно из панель задач.


Skier   (2002-07-04 18:54:00) [7]

>Justluser
А за готовыми решениями можно сюда сходить :
http://www.torry.net/trayicons.htm


Skywalker   (2002-07-04 18:53:00) [8]

Разве ShowWindow создает иконку в System Tray?


qube   (2002-07-04 18:49:00) [9]


> Skywalker ©

Дико извиняюсь, но зачем именно так:
ShowWindow(Application.Handle,SW_HIDE);
ShowWindow(Handle,SW_HIDE)


Skywalker   (2002-07-04 18:41:00) [10]

что-то типа этого


const
WM_ICONNOTIFY = WM_USER+1;

type
TFormMain = class(TForm)
procedure WMICON(var Msg:TMessage); message WM_ICONNOTIFY;
procedure WMMIN(var Msg:TMessage); message WM_SYSCOMMAND;
procedure CreateTrayIcon;
procedure DeleteTrayIcon;
private
{ Private declarations }
public
{ Public declarations }
end;


implamentation

procedure TFormMain.WMICON(var Msg:TMessage);
var P:TPoint;
begin
case Msg.LParam of
WM_LBUTTONDOWN:
begin
GetCursorPos(P);
SetForegroundWindow(Application.MainForm.Handle);
Application.ShowMainForm:=true;
ShowWindow(Application.Handle,SW_RESTORE);
ShowWindow(Handle,SW_RESTORE);
DeleteTrayIcon
end;
WM_LBUTTONUP:
end;
end;


procedure TFormMain.WMMIN(var Msg:TMessage);
begin
if Msg.WParam=SC_MINIMIZE then
begin
CreateTrayIcon;
Application.ShowMainForm:=false;
ShowWindow(Application.Handle,SW_HIDE);
ShowWindow(Handle,SW_HIDE)
end
else inherited
end;


procedure TFormMain.CreateTrayIcon;
var
IconData:TNotifyIconData;
begin
with IconData do
begin
cbSize:=SizeOf(TNotifyIconData);
Wnd:=Self.Handle;
uID:=1;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage:=WM_ICONNOTIFY;
hIcon:=Application.Icon.Handle;
szTip:="


Наверх

Титульная страница Поиск, карта сайта Написать письмо