Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "KOL";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.044 c
2-1201086793
Alex_C
2008-01-23 14:13
2008.02.24
Медленное закрытие программы


2-1201454760
trubin
2008-01-27 20:26
2008.02.24
Портирование из сишного файла, проверьте правильность


2-1201628602
NeiL
2008-01-29 20:43
2008.02.24
Выбрать RadioButton


15-1201089725
Petr V. Abramov
2008-01-23 15:02
2008.02.24
вот ведь народ настырный :)


2-1201596073
Edit
2008-01-29 11:41
2008.02.24
Edit с заглавной буквы





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