![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TKOLTrayIcon и подсказки в трее (balloons, not hints) [Delphi, Windows]
Моторокер © (2007-01-20 02:00:00)Использую стандартный TKOLTrayIcon.
Хочу показывать подсказки в трее (всплывающие жёлтые окошки в 2k/XP, не хинты. Например при извлечении USB устройства).
Как добавить такую возможность в программу?
Или лучше создавать и иконку и всё остальное самостоятельно вручную?
KOLBoss (2007-07-09 06:11:00) [1]А зачем изобретать велосипед есть же компонент
<URL= http://kolmck.net/Components/BAPTrayIcon.zip>
BAPTrayIcon.zip
</URL>
Легко и просто есть всё что надо.
SergeR (2007-07-08 15:23:00) [2]Оказывается у Трея предок Applet, а я хендл формы передавал.
Всё заработало, стоило только посмотреть )
SergeR (2007-07-08 15:18:00) [3]Хмм. Создал pKOLTray руками (а не через МСК) - всё заработало. Странно как то...
ANTPro (2007-07-08 15:17:00) [4]Почему-то у меня все работает... Что я делаю не так?
SergeR (2007-07-08 14:55:00) [5]
> Моторокер (12.03.07 19:53) [13]
>
> Result := Shell_NotifyIcon(NIM_MODIFY, @BalonNID);
> возвращает false и ничего не показывает. Плохо.
>
> Точно так же стоит TKOLTrayIcon, точно такое же окно.
Столкнулся с такой же проблемой. Все перепробовал. Не работает.
Моторокер (2007-03-12 19:53:00) [6]Проверил код в новом чистом проекте – всё нормально.
Вставляю то же самое в KillOK – функция
Result := Shell_NotifyIcon(NIM_MODIFY, @BalonNID);
возвращает false и ничего не показывает. Плохо.
Точно так же стоит TKOLTrayIcon, точно такое же окно.
D[u]fa (2007-02-04 19:44:00) [7]нее.. я и имел ввиду стандартный коловский трей компонент, все подойдет
Моторокер (2007-02-04 19:29:00) [8]
> Tray это есть PKOLTray
> надо юзать коловский трей компонент
Значит, TKOLTrayIcon не подойдет? Программа уже готовая, нужны только баллуны. Придётся переделать?
D[u]fa (2007-02-02 20:05:00) [9]нуу в данном случае идет его исп. поэтому и написал так) просто думал понятно будет.
homm (2007-02-02 19:57:00) [10]> моя функция не подразумевает обязательного исп. ПколТрея
а чего пишеш
> Tray это есть PKOLTray
D[u]fa (2007-02-01 18:20:00) [11]%) а какая разница? нет не секу ;)
и че подмигивать? типа такой плохой код? ;)
....
лично не вижу сложностей это раз.. а два моя функция не подразумевает обязательного исп. ПколТрея, секешь? =)
homm (2007-02-01 14:30:00) [12]если Tray это есть PKOLTray
то обычно функцию пишуть так чтобы ее вызов был:
ShowBalloonHint(Form.Handle, Tray, 'Text', 'Caption:', NIIF_NONE, 5);
Секеш? ;)
D[u]fa (2007-01-31 16:29:00) [13]не понял тебя я)
homm (2007-01-31 11:17:00) [14]> ShowBalloonHint(Form.Handle, DWORD (Tray), 'Text', 'Caption:
> ', NIIF_NONE, 5);
А нафига такие сложности, почему-бы PKOLTray принимать?
D[u]fa (2007-01-31 11:00:00) [15]Tray это есть PKOLTray
надо юзать коловский трей компонент
Моторокер (2007-01-31 08:39:00) [16]Не делает вообще ничего.
Здесь:
ShowBalloonHint(Form.Handle, DWORD( Tray), 'Text', 'Caption:', NIIF_NONE, 5);
Tray – это что? Ставил 0 или любое число, не помогает.
D[u]fa (2007-01-21 16:09:00) [17]да пример вызова:
ShowBalloonHint(Form.Handle, DWORD(Tray), 'Text', 'Caption:', NIIF_NONE, 5);
NIIF_NONE - значит иконка нам не нужна
D[u]fa (2007-01-21 16:08:00) [18]const
NIF_INFO = $00000010;
NIIF_NONE = $00000000;
NIIF_INFO = $00000001;
NIIF_WARNING = $00000002;
NIIF_ERROR = $00000003;
NOTIFYICONDATA_V2_SIZE = $1E8;
type
DUMMYUNIONNAME = record
case Integer of
0: (
uTimeout: UINT);
1: (
uVersion: UINT);
end;
_NOTIFYICONDATAA_V2 = record
cbSize: DWORD;
Wnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
// Расширение структуры для Shell32.dll версии пять
szTip: array [0..MAXCHAR] of AnsiChar;
dwState: DWORD;
dwStateMask: DWORD;
szInfo: array [0..MAXBYTE] of AnsiChar;
UNIONNAME: DUMMYUNIONNAME;
//uTimeout: UINT;
szInfoTitle: array [0..63] of AnsiChar;
dwInfoFlags: DWORD;
// Расширение структуры для Shell32.dll версии шесть
//guidItem: DWORD;
end;
// balloon hint for tray
function ShowBalloonHint(const Handle, uID: DWORD; const Hint, Title: String; const Style, TimeOut: Byte): Boolean;
var
BalonNID: _NOTIFYICONDATAA_V2;
begin
ZeroMemory(@BalonNID, NOTIFYICONDATA_V2_SIZE);
BalonNID.cbSize := NOTIFYICONDATA_V2_SIZE;
BalonNID.Wnd := Handle;
BalonNID.uID := uID;
StrPCopy(BalonNID.szInfo, Hint);
StrPCopy(BalonNID.szInfoTitle, Title);
BalonNID.UNIONNAME.uTimeout := TimeOut * 1000;
BalonNID.dwInfoFlags := Style;
BalonNID.uFlags := NIF_INFO;
Result := Shell_NotifyIcon(NIM_MODIFY, @BalonNID);
end;
попробуй такой код