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

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

Запуздыривание в трей.


vain ©   (2006-12-26 17:30:00) 


type
 TSystemTrayIcon= class
   private
     placed: boolean;//true, если запуздырено
     NID: _NOTIFYICONDATA;
     FIcon: TIcon;
     FTip: string;
     ID: integer;
     procedure SetIcon(NewIcon: TIcon);
     procedure SetTip(NewTip: string);
     procedure Refresh;
   public
     constructor Create(hOwner: THandle);
     procedure AddTrayIcon(Icon: TIcon= nil; Tip: string='');
     procedure DeleteTrayIcon;
     destructor Destroy;
     property Icon: TIcon read FIcon write SetIcon;
     property Tip: string read FTip write SetTip;
   end;

implementation

procedure TSystemTrayIcon.Refresh;
begin
ShowMessage(BoolToStr(Shell_NotifyIcon(NIM_MODIFY, @NID)));
end;

procedure TSystemTrayIcon.SetTip(NewTip: string);
begin
Self.FTip:= NewTip;
If NewTip<>''
  Then begin
       FillChar(NID.szTip, SizeOf(NID.szTip), 0);
       lstrcpyn(NID.szTip, PChar(Self.FTip), SizeOf(nid.szTip));
       NID.uFlags:= NID.uFlags or NIF_TIP;
       end;
If placed
  Then Self.Refresh;
end;


При изменении tip'a, ShowMessage показывает false. Как быть? Подскажете?


vain   (2006-12-26 17:43:00) [1]


> if not Shell_NotifyIcon (...) then
>  RaiseLastOSError;
> и все узнаешь

A call to an OS function failed.
И?

> Джо ©   (26.12.06 17:34) [2]
>
> Кстати, кто будет инициализировать поле cbSize правильным
> значением?

Поправил - на исход не влияет.


Джо   (2006-12-26 17:34:00) [2]

Кстати, кто будет инициализировать поле cbSize правильным значением?


Джо   (2006-12-26 17:32:00) [3]

> Как быть?

if not Shell_NotifyIcon (...) then
 RaiseLastOSError;

и все узнаешь.


Наверх

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