Кнопки в панели задач Win95
Может ли кто-нибудь поделиться информацией, компонентом или еще чем, позволяющим
в Delphi 2 или 3 создать кнопку в панели задач так, как это делает PowerDesk 2.0 Toolbar.
Да запросто!
// Это необходимо объявить в секции public в верхней части вашего pas-файла procedure TForm1.IconCallBackMessage( var Mess : TMessage ); message WM_USER + 100; |
procedure TForm1.FormCreate(Sender: TObject); var nid : TNotifyIconData;
beginwith nid do
begin
cbSize := SizeOf( TNotifyIconData );
Wnd := Form1.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage := WM_USER + 100;
hIcon := Application.Icon.Handle;
szTip := 'Текст всплывающей подсказки';
end;
Shell_NotifyIcon( NIM_ADD, @nid );
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var nid : TNotifyIconData;
beginwith nid do
begin
cbSize := SizeOf( TNotifyIconData );
Wnd := Form1.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage := WM_USER + 100;
hIcon := Application.Icon.Handle;
szTip := 'Текст всплывающей подсказки';
// Все, что указано выше, не является обязательнымend;
Shell_NotifyIcon( NIM_DELETE, @nid );
end;procedure TForm1.IconCallBackMessage( var Mess : TMessage ); var sEventLog : String;
begincase Mess.lParam of
// Сделайте здесь все что вы хотите. Например, вызов контекстного меню при нажатии правой кнопки мыши.WM_LBUTTONDBLCLK : sEventLog := 'Двойной щелчок левой кнопкой';
WM_LBUTTONDOWN : sEventLog := 'Нажатие левой кнопки мыши';
WM_LBUTTONUP : sEventLog := 'Отжатие левой кнопки мыши';
WM_MBUTTONDBLCLK : sEventLog := 'Двойной щелчок мышью';
WM_MBUTTONDOWN : sEventLog := 'Нажатие кнопки мыши';
WM_MBUTTONUP : sEventLog := 'Отжатие кнопки мыши';
WM_MOUSEMOVE : sEventLog := 'перемещение мыши';
WM_MOUSEWHEEL : sEventLog := 'Вращение колесика мыши';
WM_RBUTTONDBLCLK : sEventLog := 'Двойной щелчок правой кнопкой';
WM_RBUTTONDOWN : sEventLog := 'Нажатие правой кнопки мыши';
WM_RBUTTONUP : sEventLog := 'Отжатие правой кнопки мыши';
end;
end;
|
[000289]