Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

Клик по трей-иконке   Найти похожие ветки 

 
mrFreeman2007   (2008-02-01 09:36) [0]

Здравствуйте!
Подскажите, плз, как обработать onClick для трей-иконки?


 
Сергей М. ©   (2008-02-01 10:00) [1]

Смотря как ты ее туда запуздырил)


 
homm ©   (2008-02-01 10:24) [2]

Слава богу, тебе это удаллось!


 
@!!ex ©   (2008-02-01 10:46) [3]

> [0] mrFreeman2007   (01.02.08 09:36)

Внимание вопрос, чему у вас равно это значение:
TNotifyIconData.uCallBAckMessage? при "запуздыривании" иконки?


 
Anatoly Podgoretsky ©   (2008-02-01 11:07) [4]

> mrFreeman2007  (01.02.2008 09:36:00)  [0]

А оно там есть?


 
Анна   (2008-02-01 11:59) [5]

unit shellUnit;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, Menus, ExtCtrls;

const
WM_MYICONNOTIFY = WM_USER + 123;

type
 TForm1 = class(TForm)
   PopupMenu1: TPopupMenu;
   RestoreItem: TMenuItem;
   N1: TMenuItem;
   FileExitItem1: TMenuItem;
   HideItem: TMenuItem;
   Button1: TButton;
   Image1: TImage;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure RestoreItemClick(Sender: TObject);
   procedure HideItemClick(Sender: TObject);
   procedure FileExitItem1Click(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
   ShownOnce: Boolean;
   kk:integer;
 public
   { Public declarations }
   procedure WMICON(var msg: TMessage); message WM_MYICONNOTIFY;
   procedure WMSYSCOMMAND(var msg: TMessage);message WM_SYSCOMMAND;
   procedure RestoreMainForm;
   procedure HideMainForm;
   procedure CreateTrayIcon(n:Integer);
   procedure DeleteTrayIcon(n:Integer);
   procedure ppp;
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}
uses ComObj,  activex, ShellApi, shlobj, registry;

procedure TForm1.WMICON(var msg: TMessage);
var P : TPoint;
begin
case msg.LParam of
WM_LBUTTONDOWN:
 begin
  GetCursorPos(p);
  SetForegroundWindow(Application.MainForm.Handle);
  PopupMenu1.Popup(P.X, P.Y);
 end;
WM_LBUTTONDBLCLK : RestoreItemClick(Self);
end;
end;

procedure TForm1.WMSYSCOMMAND(var msg: TMessage);
begin
inherited;
if (Msg.wParam=SC_MINIMIZE) then HideItemClick(Self);
end;

procedure TForm1.HideMainForm;
begin
 Application.ShowMainForm := False;
 ShowWindow(Application.Handle, SW_HIDE);
 ShowWindow(Application.MainForm.Handle, SW_HIDE);
end;

procedure TForm1.RestoreMainForm;
var i,j : Integer;
begin
 Application.ShowMainForm := True;
 ShowWindow(Application.Handle, SW_RESTORE);
 ShowWindow(Application.MainForm.Handle, SW_RESTORE);
 if not ShownOnce then
 begin
   for I := 0 to Application.MainForm.ComponentCount -1 do
     if Application.MainForm.Components[I] is TWinControl then
       with Application.MainForm.Components[I] as TWinControl do
         if Visible then
         begin
           ShowWindow(Handle, SW_SHOWDEFAULT);
           for J := 0 to ComponentCount -1 do
             if Components[J] is TWinControl then
               ShowWindow((Components[J] as TWinControl).Handle, SW_SHOWDEFAULT);
         end;
   ShownOnce := True;
 end;

end;

procedure TForm1.CreateTrayIcon(n:Integer);
var nidata : TNotifyIconData;
begin
with nidata do
 begin
  cbSize := SizeOf(TNotifyIconData);
  Wnd := Self.Handle;
  uID := 1;
  uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
  uCallBackMessage := WM_MYICONNOTIFY;
//   if kk<>55  then begin
  hIcon := Application.Icon.Handle;
  StrPCopy(szTip,Application.Title);
//   end else
//   begin
//   Application.Icon.LoadFromFile("hippo.ico");
//   hIcon := Application.Icon.Handle;
//   hIcon:= Image1.Picture.Icon.Handle;
//   end;
 end;
 Shell_NotifyIcon(NIM_ADD, @nidata);
 ppp;
end;

procedure TForm1.DeleteTrayIcon(n:Integer);
var nidata : TNotifyIconData;
begin
with nidata do
 begin
  cbSize := SizeOf(TNotifyIconData);
  Wnd := Self.Handle;
  uID := 1;
 end;
 Shell_NotifyIcon(NIM_DELETE, @nidata);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
// ShownOnce:= False;
// CreateTrayIcon(1);
// HideItem.Enabled := False;
//showmessage("&#199;&#224;&#248;&#235;&#232; &#226; &#234;&#240;&#232;&#224;&#242;&#229;");
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteTrayIcon(1);
end;

procedure TForm1.RestoreItemClick(Sender: TObject);
begin
RestoreMainForm;
DeleteTrayIcon(1);
RestoreItem.Enabled := False;
HideItem.Enabled := True;
end;

procedure TForm1.HideItemClick(Sender: TObject);
begin
HideMainForm;
CreateTrayIcon(1);
HideItem.Enabled := False;
RestoreItem.Enabled := True;

end;

procedure TForm1.FileExitItem1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShownOnce:= False;
form1.Visible:= False;
CreateTrayIcon(1);
HideItem.Enabled := False;
kk:=55;
end;

procedure TForm1.ppp;
var nidata : TNotifyIconData;
ii,jj,kk:integer;
begin
with nidata do
 begin
  cbSize := SizeOf(TNotifyIconData);
  Wnd := Self.Handle;
  uID := 1;
  uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
  uCallBackMessage := WM_MYICONNOTIFY;
  hIcon:=Image1.Picture.Icon.Handle;   //считывается иконка из ресурса
end;
//Shell_NotifyIcon(NIM_ADD, @nidata);
Shell_NotifyIcon(NIM_MODIFY, @nidata);   // меняется на новую

end.


 
mrFreeman2007   (2008-02-01 12:16) [6]

Вау, вау, вау! Все равно что спросил дорогу в библиотеку, а меня взяли за руку и прямиком туда отвели. Спасибо!


 
homm ©   (2008-02-01 12:23) [7]

> [6] mrFreeman2007   (01.02.08 12:16)

Я бы сказал подвезли на машине с кондиционером :)


 
Dennis I. Komarov ©   (2008-02-01 12:26) [8]

Ну и чего толку? Назад-то дороги не знаешь :)


 
ketmar ©   (2008-02-01 12:34) [9]

ахренеть! какой страшный код. пойду, поплачу…


 
mrfreeman2007   (2008-02-01 12:46) [10]

Между прочим, я даже знаю, откуда этот код. Правда, сам не мог в нем разобраться. Щас разобрался.


 
Сергей М. ©   (2008-02-01 14:41) [11]


> Щас разобрался


А я, мартышка, которая к старости слаба глазами стала, никак не увижу в [4] той самой тобой вожделенной фразы "onClick")



Страницы: 1 вся ветка

Текущий архив: 2008.02.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
2-1201680662
Venkin
2008-01-30 11:11
2008.02.24
URL выделенной картинки в TWebbrowser


2-1201801043
leonidus
2008-01-31 20:37
2008.02.24
Проблема с добавлением записи в базу


15-1201220309
Riply
2008-01-25 03:18
2008.02.24
К вопросу "каким способом надо решать задачу"


3-1192011059
Alex
2007-10-10 14:10
2008.02.24
проблема в передаче выборки из БД в Rave


15-1200137908
antonn
2008-01-12 14:38
2008.02.24
Помогите с тестом