Доброго времени суток товарищи программисты. Возникла такая задача чтобы при вращении ролика на иконке в трее происходило какое нибудь действие. Есть такой код
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,shellapi, Menus, ExtCtrls;
const
WM_ICONTRAY = WM_USER + 1;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
TrayIconData: TNotifyIconData; { Private declarations }
public
procedure Traywheel(var Msg: TWMMouseWheel); message wm_icontray;
{ Public declarations }
//ели поставить wm_mousewheel то будет обрабатывать только до тех пор пока
//окно в фокусе а через wm_icontray не работает
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
with TrayIconData do
begin
cbSize:= SizeOf(TrayIconData);
Wnd:= Handle;
uID:= 0;
uFlags:= NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage:= WM_ICONTRAY;
hIcon:= Application.Icon.Handle;
szTip:= 'Допустим, название Вашего приложения';
end;
Shell_NotifyIcon(NIM_ADD, @TrayIconData);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @TrayIconData);
end;
procedure tform1.Traywheel(var Msg: TWMMouseWheel);
begin
caption:=inttostr(msg.WheelDelta);
end;
end.
Тут я так понял нужно передать мессаг wm_mousewheel ему "TWMMouseWheel" тока как реализовать не пойму.