Цитата(Alca @ 22.8.2006, 21:28 ) | | CoolTrayIcon |
У меня такого компонента нет. Может, компонент пытается что либо сделать.
| Код | #include <vcl.h> #pragma hdrstop
#include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "trayicon" #pragma resource "*.dfm" TForm1 *Form1; //---------------------------------------------------------------------------
#define WM_LBUTTONDBLCLICK 0x203
FARPROC pMainWndProc; NOTIFYICONDATA nid;
int __stdcall MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, long lParam) { switch(uMsg) { case WM_USER+1: if(lParam==WM_LBUTTONDBLCLICK) { Application->Restore(); } break; } return CallWindowProc(pMainWndProc, hWnd, uMsg, wParam, lParam); }
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { nid.cbSize=sizeof(NOTIFYICONDATA); nid.hWnd=Handle; nid.uID=1; nid.uFlags=NIF_ICON | NIF_MESSAGE; nid.hIcon=Application->Icon->Handle; nid.uCallbackMessage=WM_USER+1; Shell_NotifyIcon(NIM_ADD, &nid); pMainWndProc=(FARPROC)SetWindowLong(Handle, GWL_WNDPROC,(long)::MainWndProc); } //---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender) { Shell_NotifyIcon(NIM_DELETE, &nid); } |
У меня этот код нормально работает. |