Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите с TrayIcon [D3, D5, Win95/98, WinXP]


VladTen ©   (2002-10-30 11:06:00) 

Подскажите пожалуйста, как создать TrayIcons и PopupMenu к нему. Если есть у кого Example или ссылка на него, то напишите пожалуйста. Заранее благодарен.


Геннадий   (2002-11-02 21:46:00) [1]

Вот исходник, форму сам сделай. Удачи!
======================


unit TrayUnit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellAPI, ImgList, Buttons, ExtCtrls, Menus;

const WM_Icon = WM_User+999;

type
TTrayForm = class(TForm)
ImageList1: TImageList;
HideBitBtn: TBitBtn;
HideTimer: TTimer;
TrayPopupMenu: TPopupMenu;
N_Show: TMenuItem;
N_Exit: TMenuItem;
N1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure HideBitBtnClick(Sender: TObject);
procedure HideTimerTimer(Sender: TObject);
procedure N_ShowClick(Sender: TObject);
procedure N_ExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure WMIcon(var Msg: TMessage); message WM_Icon;
end;

const
Ico_Num = 1;

var
TrayForm: TTrayForm;

implementation

{$R *.dfm}

procedure TTrayForm.FormCreate(Sender: TObject);
var
Info: TNotifyIconData;
Ico : TIcon;
begin
Ico:= TIcon.Create;
ImageList1.GetIcon(0, Ico);

Info.cbSize:= SizeOf(TNotifyIconData);
Info.Wnd:= Self.Handle;
Info.uID:= Ico_Num;
Info.uFlags:= nif_Icon or nif_Tip or nif_Message;
Info.hIcon:= Ico.Handle;
Info.szTip:= "This is TIP";
Info.uCallbackMessage:= WM_Icon;

Shell_NotifyIcon(nim_Add, @Info);

Ico.Free;
end;

procedure TTrayForm.WMIcon(var Msg: TMessage);
begin
If (Msg.WParam = Ico_Num) and (Msg.LParam = WM_RButtonDown)
then TrayPopupMenu.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
end;

procedure TTrayForm.FormDestroy(Sender: TObject);
var
Info: TNotifyIconData;
begin
Info.cbSize:= SizeOf(TNotifyIconData);
Info.Wnd:= Self.Handle;
Info.uID:= Ico_Num;

Shell_NotifyIcon(nim_Delete, @Info);

end;

procedure TTrayForm.HideBitBtnClick(Sender: TObject);
begin
HideTimer.Enabled:= True;
end;

procedure TTrayForm.HideTimerTimer(Sender: TObject);
begin
HideTimer.Enabled:= False;
TrayForm.Hide;
end;

procedure TTrayForm.N_ShowClick(Sender: TObject);
begin
TrayForm.Show;
end;

procedure TTrayForm.N_ExitClick(Sender: TObject);
begin
Application.Terminate;
end;

end.


Opuhshii   (2002-10-30 12:06:00) [2]

в факе, на sources.ru ... в хелпе,..


Наверх

Титульная страница Поиск, карта сайта Написать письмо