Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
ВнизФункции WinAPI для трей меню !? Найти похожие ветки
← →
Кайфолом (2005-04-21 04:38) [0]Здравствуйте увадаемые !
Исходный код взят у вас на сайте !
Немогу понять почему он неработает !
И подскажите где мона взять инфу о ВинАПИ связаную с Треем !?
В Uses добавляю модуль ShellAPI. В разделе public формы укажите побликую типы:
TrayIcon : TIcon;
TrayNotify: TNotifyIconData;
procedure OnMessage(var Msg: TMessage); virtual; Использую ImageList в качестве контейнера для иконок.
Создаю Popup меню для команд доступных из трея.
В FormCreate выполняю:
FillChar(TrayNotify, SizeOf(TrayNotify), 0);
TrayIcon := TIcon.Create;
ImageList1.GetIcon(0, TrayIcon);
TrayNotify.cbSize:=SizeOf(TrayNotify);
TrayNotify.Wnd:=AllocateHwnd(OnMessage);
TrayNotify.HIcon:=TrayIcon.Handle;
StrPLCopy(TrayNotify.szTip, Application.Title, SizeOf(TrayNotify.szTip)-1);
TrayNotify.uFlags:=NIF_MESSAGE or NIF_ICON or NIF_TIP;
TrayNotify.uCallbackMessage:=Wm_Callback_Msg;
Shell_NotifyIcon(NIM_ADD, @TrayIcon);
В FormDestroy выполняю:
Shell_NotifyIcon(NIM_DELETE, @TrayNotify);
Описываю процедуру OnMessage:
procedure TForm1.OnMessage(var Msg: TMessage);
procedure ShowPopup;
var
x, y : integer;
begin
x := GetSystemMetrics(SM_CXFULLSCREEN);
y := GetSystemMetrics(SM_CYFULLSCREEN) + GetSystemMetrics(SM_CYCAPTION);
PopupMenu1.Popup(x, y)
end;
begin
case Msg.Msg of
procedure TGepardManagerForm.OnMessage(var Msg: TMessage);
begin
case Msg.Msg of
Wm_Callback_Msg: case Msg.lParam of
Wm_LButtonDblClk : Show;
Wm_RButtonDown : ShowPopup;
end;
Wm_EndSession: Shell_NotifyIcon(NIM_DELETE, @TrayIcon);
Wm_QueryEndSession: ;
Wm_Size : ;
Wm_ActivateAPP : ;
end;
end;
← →
Юрий Зотов © (2005-04-21 12:31) [1]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=903
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c