Форум: "WinAPI";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
ВнизПриложение - Агент Найти похожие ветки
← →
Dimaond Cat (2001-12-19 01:18) [6]Есть такая штука как RxLib, это сборище компонентов которых нет (или не удачны) в стандартной поставке дельфи, вот о чем говорилось выше
но если не хочется пользоваться компонентами то вот работающий кусок кода
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs ,
shellapi, Menus, ExtCtrls, StdCtrls;
// {shellapi добавлено вручную}
// Добавляем наше сообщение
const
wm_IconMessage = wm_User+12;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
N1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure N1Click(Sender: TObject);
private
nid: TNotifyIconData; // Подключаем структуру значка
{ Private declarations }
public
// Проседура обрабатывающая наше сообщение от значка
procedure IconTray (var Msg: TMessage);
message wm_IconMessage;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Icon.Handle :=Application.Icon.Handle; // Загружаем изображенияе значка
nid.cbSize := sizeof (nid);//Задаем размер значка соответсвенный его структуре
nid.wnd := Form1.Handle; // Кто обрабатывает сообщения от значка
nid.uID := 1; // icon ID
nid.uCallBAckMessage := wm_IconMessage; // Задаем сообщение которое посылает наш значек обработчику когда над ним происходят действия
nid.hIcon := Icon.Handle;
nid.szTip := "Всплывающая Надпись";
nid.uFlags := nif_Message or
nif_Icon or nif_Tip; //Задаем флаги
Shell_NotifyIcon (NIM_ADD, @nid); //Собственно включаем значек
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
//При закрытии программы значек следует убить
nid.uFlags := 0;
Shell_NotifyIcon (NIM_DELETE, @nid);
end;
procedure TForm1.IconTray (var Msg: TMessage);
var
Pt: TPoint;
begin
GetCursorPos (Pt);
//Получаем и обрабатываем сообщение от значка
if Msg.lParam = WM_RBUTTONUP then
begin
SetForegroundWindow (Form1.handle);
PopupMenu1.Popup (Pt.x, Pt.y);
end;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
//Делаем нечто
end;
end.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c