Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;

попробуй такой код


Наверх

Титульная страница Поиск, карта сайта Написать письмо