Вопрос вот какой!? Программа сворачивается но на панели задач всё равно остается. Как убрать? чтобы только в трее? Когда прога сворачивается пытаюсь развернуть. Разворачивает только чистую форму без каких либо кнопок. Только текст из Label!И ещё не работает кнопка закрыть и закрыть из пункта mainmenu1. Как это испраить!
| Код | Procedure TForm1.Ic(n:Integer;Icon:TIcon); Var Nim:TNotifyIconData; begin With Nim do Begin cbSize:=SizeOf(Nim); Wnd:=Form1.Handle; uID:=1; uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP; hicon:=Icon.Handle; uCallbackMessage:=wm_user+1; szTip:='Развернуть'; end; Case n OF 1: Shell_NotifyIcon(Nim_Add,@Nim); 2: Shell_NotifyIcon(Nim_Delete,@Nim); 3: Shell_NotifyIcon(Nim_Modify,@Nim); end; end;
procedure TForm1.ControlWindow(var Msg: TMessage); begin if Msg.WParam = SC_MINIMIZE then begin Ic(1, Application.Icon); // Добавляем значок в трей ShowWindow(Handle, SW_HIDE); // Скрываем программу end else inherited; end;
procedure TForm1.IconMouse(var Msg: TMessage); var p: tpoint; begin GetCursorPos(p); // Запоминаем координаты курсора мыши case Msg.LParam of // Проверяем какая кнопка была нажата WM_LBUTTONUP, WM_LBUTTONDBLCLK: {Действия, выполняемый по одинарному или двойному щел?ку левой кнопки мыши на зна?ке. В нашем слу?ае это просто активация приложения} begin Ic(2, Application.Icon); // Разворачиваем программу ShowWindow(Handle, SW_SHOWNormal); // Восстанавливаем окно программы end;
WM_RBUTTONUP: {Действия, выполняемый по одинарному щел?ку правой кнопки мыши} begin PopupMenu1.Popup(p.X, p.Y); // Заставляем всплыть тот самый TPopUp о котором я говорил ?уть раньше PostMessage(Handle, WM_NULL, 0, 0) // Обнуляем сообщение end; end; end;
|
|