Главная страница
    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.47 MB
Время: 0.008 c
6-62701
badaxe
2002-11-22 11:39
2003.01.20
Список назначеных ip адресов под WIN2K.


4-62893
/-\|e}{
2002-12-01 12:32
2003.01.20
Сравнение файлов


1-62506
Niko
2003-01-10 13:43
2003.01.20
Интерфейс как в Data Digram


3-62378
Иксик
2002-12-24 11:46
2003.01.20
Кодировка в БД


1-62545
zolotov
2003-01-10 23:48
2003.01.20
Проблема с каталогами Windows и Winnt





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