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

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

taskbar [D7, Win2k, WinXP]


Pank83 ©   (2005-11-24 08:50:00) 

Hi all!
Знаю что избитая тема, но необходимо
скрыть приложение в таскбаре.
Никак не могу найти в ЧаВО.
Спасибо.


Eraser   (2005-12-05 14:04:00) [1]


> Pank83 ©   (24.11.05 08:50)

По-умолчанию приложение итак в таксбаре.


-=SPIDER=-   (2005-12-05 13:29:00) [2]

Для работы с TrayIcon используется функция Shell_NotifyIcon, в которую передается команда: NIM_ADD, NIM_MODIFY или NIM_DELETE для создания изменения и удаления соответственно, и структура TNotifyIconData. У каждой TrayIcon в приложении должен быть свой uID.


const
 WM_NOTIFYTRAYICON = WM_USER + 1;
...
private
 procedure WMTRAYICONNOTIFY(var Msg: TMessage);
   message WM_NOTIFYTRAYICON;
...
uses ShellAPI;

procedure TForm1.WMTRAYICONNOTIFY(var Msg: TMessage);
var
 s: String;
begin
 case Msg.LParam of
   WM_MOUSEMOVE: s := 'Мышь сдвинута';
   WM_LBUTTONDOWN: s := 'Левая кнопка нажата';
   WM_LBUTTONUP: s := 'Левая кнопка отпущена';
   WM_LBUTTONDBLCLK: s := 'Два раза нажата левая кнопка';
   WM_RBUTTONDOWN: s := 'Правая кнопка нажата';
   WM_RBUTTONUP: s := 'Правая кнопка отпущена';
   WM_RBUTTONDBLCLK: s := 'Два раза нажата правая кнопка';
   else s := IntToStr(Msg.LParam);
 end;
 ListBox1.Items.Add(s);
 ListBox1.ItemIndex := ListBox1.Items.Count - 1;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 tray: TNotifyIconData;
 Ic: TIcon;
begin
 Ic := TIcon.Create;
 Ic.LoadFromFile('Icon1.ico');
 with tray do begin
   cbSize := SizeOf(TNotifyIconData);
   Wnd := Form1.Handle;
   uID := 1;
   uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
   uCallBackMessage := WM_NOTIFYTRAYICON;
   hIcon := Ic.Handle;
   szTip := ('Это наша иконка');
 end;
 Shell_NotifyIcon(NIM_ADD, Addr(tray));
 Ic.Destroy;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 tray: TNotifyIconData;
 Ic: TIcon;
begin
 Ic := TIcon.Create;
 Ic.LoadFromFile('Icon2.ico');
 with tray do begin
   cbSize := SizeOf(TNotifyIconData);
   Wnd := Form1.Handle;
   uID := 1;
   uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
   uCallBackMessage := WM_NOTIFYTRAYICON;
   hIcon := Ic.Handle;
   szTip := ('Это другая иконка');
 end;
 Shell_NotifyIcon(NIM_MODIFY, Addr(tray));
 Ic.Destroy;
end;

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


Плохиш   (2005-12-05 13:15:00) [3]


> Pank83 ©   (24.11.05 08:50)

Ищи по словам "запуздырить туда где часики"


PeaK   (2005-12-05 12:55:00) [4]

Попробуй так
ShowWindow(Application.Handle, SW_HIDE) ;


Наверх

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