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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2008, 15:37   #1
ben95
Новичок
Джуниор
 
Аватар для ben95
 
Регистрация: 22.12.2007
Сообщений: 204
Вопрос SystemTrey

во вкладке additional должен быть элемент
SystemTrey но его там нет(использую дельфий 7)можноли его туда каким либо методом добавить???
ben95 вне форума Ответить с цитированием
Старый 08.01.2008, 15:41   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

в Delphi 7 его вроде и не должно быть.
Используйте либо RxLib (хотя только ради размещения в трей это глупо)
или ручками


Для добавления иконки нужно сперва подключить модуль ShellAPI в раздел uses, а затем написать следующий код по нажатию на кнопку:



procedure TForm1.Button1Click(Sender: TObject);
var
no: TNotifyIconData;
Hicon1: HIcon;
begin
//Помещение иконки в Tray Bar
HIcon1:=ExtractIcon(Handle,'i:\arw0 1lt.ico',0);
with no do
begin
cbSize:=Sizeof(TNotifyIconData);
Wnd:=Handle;
uID:=0;
UFlags:=NIF_MESSAGE+NIF_ICON+NIF_TI P;
SzTip:='Traybar Tip';
HIcon:=HIcon1;
//Определяемое пользователем сообщение
uCallBackMessage:=WM_USER+0;
end;
Shell_NotifyIcon(NIM_ADD,@no);
end;




Для того, чтобы удалить иконку обработайте нажатие второй кнопки:



procedure TForm1.Button2Click(Sender: TObject);
var
no: TNotifyIconData;
begin
//Удаление иконки
with no do
begin
cbSize:=Sizeof(TNotifyIconData);
Wnd:=Handle;
uID:=0;
end;
Shell_NotifyIcon(NIM_Delete,@no);
end;




Для добавления, удаления или редактирования иконок на TrayBar'e используем специальную API функцию - Shell_NotifyIcon. Как вы уже прочитали для того, чтобы ею воспользоваться, нужно сначала подключить модуль ShellAPI в разделе uses. В качестве параметров функции нужно указать две вещи.

Сначала сообщение, которое мы посылаем, определяющее необходимое действие над иконкой. Этот параметр может принимать одно из следующих значений:
NIM_ADD - добавляет иконку в область TrayBar'a
NIM_DELETE - соответственно, удаляет
NIM_MODIFY - если задать это значение, можно будет модифицировать иконку
В качестве второго параметра передаётся структура NOTIFYICONDATA, которая содержит сведения об иконке. Эта структура обладает следующими полями:
cbSize - это размер структуры в байтах
hWnd - дескриптор окна, которое будет получать сообщения ассоциированные с иконкой на TrayBar'e
uID - идентификатор иконки на TrayBar'e
uFlags - массив флагов, значение этого поля может комбинироваться из следующих констант:
NIF_ICON - элемент структуры hIcon будет задействован
NIF_MESSAGE - элемент структуры uCallbackMessage будет задействован
NIF_TIP - - элемент структуры szTip будет задействован
uCallbackMessage - идентификатор сообщения. Система использует этот идентификатор, когда сообщение посылается окну, обозначенному в поле hWnd. Это сообщение посылается, когда происходит событие мыши над областью иконки.
hIcon - дескриптор задаваемой иконки
szTip - всплывающая подсказка, появляющаяся над областью иконки

DW
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 08.01.2008, 15:50   #3
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

В Делфи такого компонента с роду небыло, это в Visual C++ есть.
Квэнди спасибо за инфу.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 08.01.2008, 16:01   #4
ben95
Новичок
Джуниор
 
Аватар для ben95
 
Регистрация: 22.12.2007
Сообщений: 204
По умолчанию

цитирую из книги дельфий от фленова !!!но там описывается дельфий 2006 это из книги bibliya Delphi
ben95 вне форума Ответить с цитированием
Старый 08.01.2008, 16:18   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Этот компонент децствительно есть в Delphi >7
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 08.01.2008, 22:45   #6
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

В Delphi 7 нет компонента работающего с треем! Я исользую RXLib, работает прекрасно. Ни раз не подводила в отличии от Delphi 2006 TTray!
FaTaL вне форума Ответить с цитированием
Старый 09.01.2008, 00:34   #7
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Та такой компонент писать руками часик - чтобы получить довольно хороший результат анимации и т.п.
BOBAH13 вне форума Ответить с цитированием
Старый 29.08.2008, 15:39   #8
Dmitriy_ZDO
Пользователь
 
Аватар для Dmitriy_ZDO
 
Регистрация: 27.08.2008
Сообщений: 12
Хорошо

Привет!
Лично я пользуюсь CoolTrayIcon'ом - для моих скромных потребностей весьма хватает. TTray в новой Delphi не видел, характеризовать не буду, но по моему, CoolTrayIcon - очень даже нормальный компонент.
Dmitriy_ZDO вне форума Ответить с цитированием
Старый 29.08.2008, 16:03   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пользуюсь Shell_NotifyIcon и больше от компонентов не зависю(шу)
Рекомендую всем и каждому.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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