WinCE - иконка в трее

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

WinCE - иконка в трее

Сообщение FreeBSD-ier » 13.12.2010 15:27:45

ОС - Windows XP SP3
IDE - Lazarus 0.9.28.2 бета + winCE

Господа... Может кто-нить поможет, разъяснит :

Добавляю иконку в трей, код стандартный :

ico:=TIcon.Create;
ico.LoadFromFile(SelfPath+'\icon16x16x8.ico');
with TrayIconData do begin
cbSize := SizeOf(TrayIconData);
uID := 0;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := WM_ICONTRAY;
hIcon := ico.Handle;
StrPCopy(szTip, Application.Title);
end;
TrayIconData.Wnd := Handle;
windows.Shell_NotifyIcon(NIM_ADD, NOTIFYICONDATA(@TrayIconData))

Под Win32 компилируется и запускается без проблем.
Под WinCE - компиляция останавливается с ошибкой - Identifier not found - кричит, что не знает что-такое NIF_MESSAGE, NIF_ICON, NIF_TIP и NIM_ADD...

Как такое вообще может быть? На сколько я понимаю : NIF_MESSAGE, NIF_ICON, NIF_TIP, NIM_ADD и прочие NIM-ы и NIF-ы - это стандартные ShellApi сообщения...

Пробовал под Win32 делать ShowMessage(inttostr(NIF_MESSAGE)) и подставлять потом вместо словесных "NIF_MESSAGE", "NIF_ICON", "NIF_TIP", "NIM_ADD" их DWORD-ы. В итоге - под Win32 - скомпилировалось и запустилось без проблем - под WinCE скомпилировалось, но никакого эффекта - иконка не появилась...

Пробовал TTrayIcon - под WinCE - не срабатывает...
FreeBSD-ier
незнакомец
 
Сообщения: 5
Зарегистрирован: 10.12.2010 10:54:54

Re: WinCE - иконка в трее

Сообщение Mr.Smart » 13.12.2010 15:45:05

TTrayIcon
Данный виджет для WinCE не реализован!
по крайней мере в 0.9.29 rev 25451

Добавлено спустя 1 минуту 35 секунд:
http://www.vestace.ru/Default.aspx?tabid=58&ctl=Details&mid=371&ItemID=47

Добавлено спустя 19 минут 57 секунд:
Добавляем себе следующее:
Код: Выделить всё
const
   NIM_ADD  =   0;
   NIM_MODIFY  = 1;
   NIM_DELETE = 2;
   NIF_MESSAGE = 1;
   NIF_ICON = 2;
   NIF_TIP = 4;


Ну и функция Shell_NotifyIcon определена не правильно.

Код: Выделить всё
type
     _NOTIFYICONDATAW = record
         cbSize: DWORD;
         Wnd: HWND;
         uID: UINT;
         uFlags: UINT;
         uCallbackMessage: UINT;
         hIcon: HICON;
         szTip: array [0..63] of WideChar;
     end;
     PNOTIFYICONDATAW = ^_NOTIFYICONDATAW;

function Shell_NotifyIcon(dwMessage: DWORD; lpData: PNOTIFYICONDATAW): WINBOOL; external 'coredll.dll' name 'Shell_NotifyIcon';
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

Рейтинг@Mail.ru