Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.156 c
15-1200763466
мойипизвестен
2008-01-19 20:24
2008.02.24
А что будет если...


15-1200730915
Sergey Masloff
2008-01-19 11:21
2008.02.24
Субботняя :( задача


2-1201801065
Artem
2008-01-31 20:37
2008.02.24
Сохранить строку в ресурсе


11-1179211668
WindLord
2007-05-15 10:47
2008.02.24
Проблема с отображением компонентов в KOL/МСК 2.60, Delphi 7


6-1181070583
Samael6
2007-06-05 23:09
2008.02.24
Скорость приема писем в Indy 9





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский