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

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

Сворачивание программ в трей [D6, WinXP]


dommin ©   (2006-07-06 14:24:00) 

Как свернуть прогу в трей в Delphi 6?


filh   (2006-07-10 13:42:00) [1]

RxLib


PSPF2003   (2006-07-07 11:16:00) [2]

Ладно за тебя и за себя :) :) :) :)


Desdechado   (2006-07-07 11:14:00) [3]

PSPF2003 ©   (07.07.06 11:09) [6]
чрезмерная серьёзность не украшает :)

я-то тоже смайл забыл поставить


PSPF2003   (2006-07-07 11:09:00) [4]


> а что, в дельфи 6 есть трей?

Прочти вопрос еще раз


Desdechado   (2006-07-07 10:57:00) [5]

а что, в дельфи 6 есть трей?


Lamer@fools.ua   (2006-07-07 10:43:00) [6]

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988624981&n=15


Handle   (2006-07-06 16:33:00) [7]

ses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Menus, ShellAPI;
const
WM_NOTIFYTRAYICON = WM_USER + 1;
type
 TForm1 = class(TForm)
   PopupMenu1: TPopupMenu;
   Exit: TMenuItem;
   ShowForm: TMenuItem;
   procedure FormCreate(Sender: TObject);
   procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
   procedure FormDestroy(Sender: TObject);
   procedure ExitClick(Sender: TObject);
   procedure ShowFormClick(Sender: TObject);
   procedure FormShow(Sender: TObject);
 private
   procedure WMTRAYICONNOTIFY(var Msg: TMessage); message WM_NOTIFYTRAYICON;
   procedure OnMinimizeProc(Sender: TObject);
 public
   { Public declarations }
 end;

var
 Form1:    TForm1;
 MayClose: boolean=false;
implementation

{$R *.dfm}

procedure TForm1.OnMinimizeProc(Sender: TObject);
begin
 Form1.Close;
end;

procedure TForm1.WMTRAYICONNOTIFY(var Msg: TMessage);
begin
case Msg.LParam of
   WM_RBUTTONUP:
       begin
           SetForegroundWindow(Application.MainForm.Handle);
           PopupMenu1.Popup(Mouse.CursorPos.X , Mouse.CursorPos.Y );
       end;

   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
   Tray: TNotifyIconData;
begin
   Application.OnMinimize:= OnMinimizeProc;

   with Tray do
       begin
           cbSize := SizeOf(TNotifyIconData);
           Wnd := Handle;
           uID := 1;
           uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
           uCallBackMessage := WM_NOTIFYTRAYICON;
           hIcon :=  Application.Icon.Handle;
           szTip := ('My Program');
       end;
           Shell_NotifyIcon(NIM_ADD, Addr(Tray));
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MayClose = false then
begin
 CanClose:= false;
 MayClose:= true;
 Form1.Hide;
end
else
begin
 CanClose:= true;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
   Tray: TNotifyIconData;
begin
   with Tray do
       begin
           cbSize := SizeOf(TNotifyIconData);
           Wnd := Handle;
           uID := 1;
       end;
           Shell_NotifyIcon(NIM_DELETE, Addr(Tray));
end;

procedure TForm1.ExitClick(Sender: TObject); //PopupMenu
begin
 MayClose:= true;
 Form1.Close;
end;

procedure TForm1.ShowFormClick(Sender: TObject); //PopupMenu
begin
 MayClose:= false;
 Form1.Show;
 Application.BringToFront;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
 Application.Restore;
end;


Footballer   (2006-07-06 14:50:00) [8]

Заходишь на http://www.torry.net/в Quick Searchвводишь "CoolTrayIcon" и скачиваешь компонент для сворачивания проги в трей


PSPF2003   (2006-07-06 14:48:00) [9]

Использовать компонент


Наверх

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