-
Как можно сделать всплывающую подсказу из трея, пример такой подсказки можно увидить допустим когда удачно прошло соединение впн ("интернет сейчас подключен, щелкните здесь для получения дополнительной информации"). Не хочу прибегать к использованию сторонних компонентов, но хотя сам пользуюсь библиотекой rxlib и к сожалению такой функции я там не нашел..
-
Сначала скажи, как реализуешь трэй-иконку. Если через NOTIFYICONDATA, то сперва "мигаешь" ей (напр заменяя на 100 миллисекунд другой иконкой, какимнить там восклицательным знаком), потом вызываешь SystemParametersInfo с параметром ABM_GETTASKBARPOS, он тебе возвращает положение всего трэя на экране. Ты берёшь этот результат и рассчитываешь прямоугольник твоего будущего всплывающего окна. Затем создаёшь окно (форму?) без заголовка, а только с рамкой вокруг, и в нем выводишь всё что пожелается.
-
Я использую компонент RxTrayIcon, саму работа не разбирал, потому что наверно её не пойму ). Т.к далеко начинающий программист. Если не тяжело и есть время плиз распиши все в коде ..
-
> Dib@zol © (13.01.08 17:40) [1] и попадает это окно фигтекуда. потому что неизвестно, где у трэя док, есть ли он вообще и не спрталась ли твоя икона в невидимую часть.
автор, MSDN на предмет Shell_NotifyIcon(). в win2k+ там появились эти самые «пузырьки». в заголовочных файлах d7 констант для них нет, но у джедаев (jedi) есть. уверяю, ничего сложного, достаточно вдумчиво почитать MSDN.
-
type
TNotifyIconDataEx = record
cbSize: DWORD;
hWnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
szTip: array[0..127] of AnsiChar;
dwState: DWORD;
dwStateMask: DWORD;
szInfo: array[0..255] of AnsiChar;
TimeoutOrVersion: TTimeoutOrVersion;
szInfoTitle: array[0..63] of AnsiChar;
dwInfoFlags: DWORD;
end;
procedure ShowBaloon(Captn,Info: pchar);
begin
FIconData.uFlags := uFlags or NIF_INFO;
StrCopy(FIconData.szInfo,Info);
StrCopy(FIconData.szInfoTitle,Captn);
FIconData.TimeoutOrVersion.uTimeout := 10000;
FIconData.dwInfoFlags := NIIF_INFO;
Shell_NotifyIcon(NIM_MODIFY, @FIconData);
end;
-
Посмотри исходник на DelphiSource.ru там есть статья и пример как это сделать.
|