Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2008, 00:24   #1
eks-s
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 64
По умолчанию щелчок по BaloonHint

Здравствуйте! При выводе сообщение BaloonHint с трэя, можно как нибудь обработать событие щелчка мышью по нему?
eks-s вне форума Ответить с цитированием
Старый 25.04.2008, 01:58   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Всё просто до безобразия:
Поставь себе компонент CoolTrayIcon, там есть процедурка CoolTrayIconBalloonHintClick. И будет тебе счастье
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 25.04.2008, 04:00   #3
eks-s
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 64
По умолчанию

хм... заманчиво... )) А без него?
eks-s вне форума Ответить с цитированием
Старый 25.04.2008, 08:09   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

А без него, видать народ и не думал как

Вот процедурки для показа, скрытия такой подсказки (выдернул с
компонента, ужо давно писал, так что только так, сами уже там сделайте как надо)
Код:
const
  WM_NOTIFYICON = WM_APP + 13; // можете любое тут значение 
// поставить
  NIF_INFO = $00000010;

type
  _NOTIFYICONDATAEX = packed record
    cbSize: DWORD;
    hWnd: HWND;
    uID: UINT;
    uFlags: UINT;
    uCallbackMessage: UINT;
    hIcon: HICON;
    szTip: array[0..MAXCHAR] of AnsiChar;
    dwState: DWORD;
    dwStateMask: DWORD;
    szInfo: array[0..MAXBYTE] of AnsiChar;
    uTimeout: UINT;
    szInfoTitle: array[0..63] of AnsiChar;
    dwInfoFlags: DWORD;
  end;
  TNOTIFYICONDATAEX = _NOTIFYICONDATAEX;
  PNOTIFYICONDATAEX = ^TNOTIFYICONDATAEX;
  
  TBalloonTimeout = 10..30;
  TBalloonIconType = (bitNone, bitInfo, bitWarning, bitError);

var
  FHandle: HWND;
  FIconData: TNOTIFYICONDATAEX;

// процедура обработчик сообщений
procedure HandleIconMessage(var Msg: TMessage);
const
  NIN_BALLOONSHOW = WM_USER + 2;
  NIN_BALLOONHIDE = WM_USER + 3;
  NIN_BALLOONTIMEOUT = WM_USER + 4;
  NIN_BALLOONUSERCLICK = WM_USER + 5;
begin
  // а вот ваши сообщения )) обрабатывайте их
  case Msg.Msg of
  WM_NOTIFYICON:
    case Msg.LParam of
      NIN_BALLOONUSERCLICK:;
      NIN_BALLOONSHOW:;
      NIN_BALLOONHIDE:;
      NIN_BALLOONTIMEOUT:;
    end;
  else DefWindowProc(FHandle, Msg.Msg, Msg.WParam, Msg.LParam);
  end;
end;

// OnCreate где-нибудь
FHandle := Classes.AllocateHWnd(HandleIconMessage);
ZeroMemory(@FIconData, SizeOf(TNOTIFYICONDATAEX));
FIconData.cbSize := SizeOf(TNOTIFYICONDATAEX);
FIconData.hWnd := FHandle;
FIconData.uID := 1;
FIconData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
FIconData.uCallbackMessage := WM_NOTIFYICON;
 
procedure ShowBalloonTrayIcon;
const
  aBalloonIconTypes: array[TBalloonIconType] of Byte = (0, 1, 2, 3);
var
  NIData: TNOTIFYICONDATAEX;
begin
  HideBalloonTrayIcon;
  ZeroMemory(@NIDATA, SizeOf(TNOTIFYICONDATAEX));
  with NIData do begin
    cbSize := SizeOf(TNOTIFYICONDATAEX);
    hWnd := FHandle;
    uID := 1;
    uFlags := NIF_INFO;
    uTimeout := BalloonTimeout * 1000;
    lstrcpy(szInfo, PCHAR(BalloonText));
    lstrcpy(szInfoTitle, PCHAR(BalloonTitle));
    dwInfoFlags := aBalloonIconTypes[BalloonIconType];
  end;
  Shell_NotifyIcon(NIM_MODIFY, @NIData);
end;

procedure HideBalloonTrayIcon;
begin
  with FIconData do
    uFlags := uFlags or NIF_INFO;
  Refresh;
  with FIconData do
    uFlags := uFlags and not NIF_INFO;
end;
Как обычно незачто )))
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обработать двойной щелчок в определенной ячейке DBGrid? Dux БД в Delphi 11 10.08.2008 03:34
Двойной щелчок Д'якон Win Api 4 19.05.2008 18:56
Как обработать событи, щелчок на кнопке мыши? proglamer Паскаль, Turbo Pascal, PascalABC.NET 10 13.11.2007 18:57
Контролы на baloonhint Toxa Компоненты Delphi 0 06.11.2007 17:33