Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

TKOLTrayIcon и подсказки в трее (balloons, not hints)   Найти похожие ветки 

 
Моторокер   (2007-01-20 02:00) [0]

Использую стандартный TKOLTrayIcon.
Хочу показывать подсказки в трее (всплывающие жёлтые окошки в 2k/XP, не хинты. Например при извлечении USB устройства).
Как добавить такую возможность в программу?

Или лучше создавать и иконку и всё остальное самостоятельно вручную?


 
D[u]fa ©   (2007-01-21 16:08) [1]

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;

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


 
D[u]fa ©   (2007-01-21 16:09) [2]

да пример вызова:

ShowBalloonHint(Form.Handle, DWORD(Tray), "Text", "Caption:", NIIF_NONE, 5);

NIIF_NONE - значит иконка нам не нужна


 
Моторокер   (2007-01-31 08:39) [3]

Не делает вообще ничего.
Здесь:
ShowBalloonHint(Form.Handle, DWORD(Tray), "Text", "Caption:", NIIF_NONE, 5);
Tray – это что? Ставил 0 или любое число, не помогает.


 
D[u]fa ©   (2007-01-31 11:00) [4]

Tray это есть PKOLTray
надо юзать коловский трей компонент


 
homm ©   (2007-01-31 11:17) [5]

> ShowBalloonHint(Form.Handle, DWORD(Tray), "Text", "Caption:
> ", NIIF_NONE, 5);

А нафига такие сложности, почему-бы PKOLTray принимать?


 
D[u]fa ©   (2007-01-31 16:29) [6]

не понял тебя я)


 
homm ©   (2007-02-01 14:30) [7]

если Tray это есть PKOLTray
то обычно функцию пишуть так чтобы ее вызов был:
ShowBalloonHint(Form.Handle, Tray, "Text", "Caption:", NIIF_NONE, 5);

Секеш? ;)


 
D[u]fa ©   (2007-02-01 18:20) [8]

%) а какая разница? нет не секу ;)
и че подмигивать? типа такой плохой код? ;)

....

лично не вижу сложностей это раз.. а два моя функция не подразумевает обязательного исп. ПколТрея, секешь? =)


 
homm ©   (2007-02-02 19:57) [9]

> моя функция не подразумевает обязательного исп. ПколТрея

а чего пишеш
> Tray это есть PKOLTray


 
D[u]fa ©   (2007-02-02 20:05) [10]

нуу в данном случае идет его исп. поэтому и написал так) просто думал понятно будет.


 
Моторокер   (2007-02-04 19:29) [11]


> Tray это есть PKOLTray
> надо юзать коловский трей компонент

Значит, TKOLTrayIcon не подойдет? Программа уже готовая, нужны только баллуны. Придётся переделать?


 
D[u]fa ©   (2007-02-04 19:44) [12]

нее.. я и имел ввиду стандартный коловский трей компонент, все подойдет


 
Моторокер   (2007-03-12 19:53) [13]

Проверил код в новом чистом проекте – всё нормально.
Вставляю то же самое в KillOK – функция
Result := Shell_NotifyIcon(NIM_MODIFY, @BalonNID);
возвращает false и ничего не показывает. Плохо.

Точно так же стоит TKOLTrayIcon, точно такое же окно.


 
SergeR ©   (2007-07-08 14:55) [14]


> Моторокер   (12.03.07 19:53) [13]
>
> Result := Shell_NotifyIcon(NIM_MODIFY, @BalonNID);
> возвращает false и ничего не показывает. Плохо.
>
> Точно так же стоит TKOLTrayIcon, точно такое же окно.

Столкнулся с такой же проблемой. Все перепробовал. Не работает.


 
ANTPro ©   (2007-07-08 15:17) [15]

Почему-то у меня все работает... Что я делаю не так?


 
SergeR ©   (2007-07-08 15:18) [16]

Хмм. Создал pKOLTray руками (а не через МСК) - всё заработало. Странно как то...


 
SergeR ©   (2007-07-08 15:23) [17]

Оказывается у Трея предок Applet, а я хендл формы передавал.
Всё заработало, стоило только посмотреть )


 
KOLBoss ©   (2007-07-09 06:11) [18]

А зачем изобретать велосипед есть же компонент
<URL=http://kolmck.net/Components/BAPTrayIcon.zip>
BAPTrayIcon.zip
</URL>
Легко и просто есть всё что надо.



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

Текущий архив: 2008.02.24;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.046 c
15-1201094235
Dennis I. Komarov
2008-01-23 16:17
2008.02.24
Mail Server


6-1181070583
Samael6
2007-06-05 23:09
2008.02.24
Скорость приема писем в Indy 9


15-1200072478
Простой
2008-01-11 20:27
2008.02.24
Чат для локальной сети


4-1183823617
AlexanderMS
2007-07-07 19:53
2008.02.24
Изменение положения ползунка в TrackBar.


2-1201801043
leonidus
2008-01-31 20:37
2008.02.24
Проблема с добавлением записи в базу