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

Вниз

Tray   Найти похожие ветки 

 
alvin   (2002-12-04 12:23) [0]

Мастера, помогите, ложу иконку в TaskBar, но как только навожу на нее мышь она (иконка) исчезает. Что не так?


 
[lamer]Barmaglot   (2002-12-04 13:15) [1]

Иконка не связана с приложением, поэтому и исчезает...

а вообще то RTFM: http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988624981&n=15


 
Song   (2002-12-04 13:32) [2]

Точнее не связана с сообщением, которое должно обрабатываться у тебя в приложении.


 
alvin   (2002-12-05 06:36) [3]

Имеете в виду uCallbackMessage?
Вот как это у меня объявлено

const WM_MYTRAYNOTIFY = WM_USER + 123;
var
n:integer;
var w_tray:tNOTIFYICONDATA;
...
...
procedure WndProc(..)
WM_CREATE:
...
Shell_NotifyIcon(NIM_ADD, @w_tray);
WM_MYTRAYNOTIFY:
...
WM_CREATE:
Shell_NotifyIcon(NIM_DELETE, @w_tray);

with w_tray do begin
cbSize := sizeof(tNOTIFYICONDATA);
Wnd := W_WND;
uID := n;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := WM_MYTRAYNOTIFY;
hIcon := Application.Icon.Handle;
szTip:="";


 
Song   (2002-12-05 07:35) [4]

Это-то понятно. А кто его обрабатывает? Кто обрабатывает WM_MYTRAYNOTIFY?


 
alvin   (2002-12-05 10:35) [5]

WM_MYTRAYNOTIFY:
ShowPopup;
WM_DESTROY:
..

(или я чего-то не понял в вопросе)


 
Song   (2002-12-05 15:53) [6]

да, сорри, стормозил. А как у Вас устанавливается обработчик окна и где Вы вызываете старый обработчик?


 
Diamond Cat   (2002-12-05 21:54) [7]

может я чего не понял но почему на WM_CREATE следует
Shell_NotifyIcon(NIM_DELETE, @w_tray);


 
Kiril45   (2002-12-06 01:19) [8]

const WM_TRAY = WM_USER + 100;
....
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
Item11: TMenuItem;
Item21: TMenuItem;
Exit1: TMenuItem;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure MouseInTray(var Msg: TMessage); message WM_TRAY;
.....
Tray: TNotifyIconData;
.....
procedure TForm1.FormCreate(Sender: TObject);
begin
with Tray do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := 100;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage := WM_TRAY;
hIcon := Image1.Picture.Icon.Handle;
szTip := "Тест";
end;
Form1.Caption := "Инспектор сети";
Shell_NotifyIcon(NIM_ADD, @Tray);
end;

procedure TForm1.MouseInTray(var Msg: TMessage);
var P: TPoint;
begin
if Msg.LParam = WM_RBUTTONDOWN then
begin
GetCursorPos(P);
PopupMenu1.Popup(P.X, P.Y);
end;
Application.ProcessMessages;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Application.MessageBox("Завершить программу?","Тест",MB_OKCANCEL)<> IDOK
Then
Action := caNone
else
begin
Shell_NotifyIcon(NIM_DELETE, @Tray);
Action := caFree;
Application.Terminate;
end;
end;


 
alvin   (2002-12-06 07:03) [9]

Diamond Cat енто я напортачил вместо WM_CREATE следует ситать WM_DESTROY (здесь темно и клавишь не видно :)


 
alvin   (2002-12-06 07:08) [10]

С DefWindowProc у меня вроде все в порядке (не привожу код, чтобы не захламлять место) меня интересует значение uID, в моем случае оно вроде нулевое, может ему надо приписать какое-то другое значение?


 
Song   (2002-12-06 08:34) [11]

Поставьте uID равный 1.



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

Форум: "WinAPI";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
3-62421
NaemNIK
2002-12-26 14:41
2003.01.20
dll устанавливает лицензия, как это обойти?


1-62513
Serghei
2003-01-10 16:51
2003.01.20
Application Events


1-62652
Cranium
2003-01-08 01:09
2003.01.20
Реализация DLL


6-62713
Warlock[NT]
2002-11-20 07:47
2003.01.20
Wake On Lan


1-62475
Ag2002
2003-01-09 18:54
2003.01.20
Sender





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский