как свернуть приложение в трей delphi

Программирование Delphi

Все о программировании.

Главное меню

Как поместить иконку в трей при помощи Delphi

Поместить иконку приложения в трей средствами Delphi не такая уж и сложная задача. Она пригодится для вывода меню, а также для скрытия приложения, когда остается одна только иконка, при помощи которой Вы можете управлять приложением.

Посмотрите на панель задач, в ту часть, где находятся часики. Есть там другие иконки? Это место называется Windows System Tray. Хотите поместить значок своего приложения туда же? Тогда эта статья для Вас!

Это было бы полезно для программ, которые работают длительное время без какого-либо взаимодействия с пользователем (фоновых задач, которые обычно запущены на компьютере в течение всего дня).

Помещаем иконку в трей

К слову сказать, создать приложение, которое запускается с иконкой в системном трее довольно легко – только одна функция API Shell_NotifyIcon необходима для выполнения этой задачи.

Функция объявлена в модуле ShellApi и ей передается два параметра. Первый параметр – флаг, который указывает на то, добавляется иконка в данный момент или удаляется, а второй параметр представляет собой указатель на структуру TNotifyIconData, в которой хранится информация об иконке (дескриптор иконки для отображения, текст всплывающей подсказки при наведении указателя мыши на иконку, дескриптор окна, которое будет получать сообщения от иконки и тип сообщения, которое будет послано окну).

Для начала добавьте ShellApi в раздел uses Вашей формы, затем добавьте эти строки:

Затем в методе OnCreate нужно инициализировать структуру данных TrayIconData и вызов функции Shell_NotifyIcon:

Параметр Wnd из TrayIconData указывает на окно, которое будет получать сообщения от иконки. HIcon указывает на значок, который будет отображаться в трее. В нашем случае – значок приложения. szTip содержит текст всплывающей подсказки, которое будет отображаться при наведении на иконку курсора мыши (может содержать до 64 символов). Параметр uFlags установлен для обработки сообщений приложения.

Если Вы запустите Ваш проект сейчас, Вы увидите значок Вашего приложения в трее, но ничего не происходит при нажатии на нем мышкой.

При закрытии приложения нам нужно удалить значок из трея:

И, наконец, чтобы наша иконка реагировала на события мыши, а также появлялось всплывающее меню нужно создать процедуру обработки сообщений, а также добавить компонент TPopupMenu на форму и создать в нем пункты меню.

Сначала мы объявим процедуру обработки сообщений в области public объявления формы.

Ну вот и все! Быстро и просто: есть подсказка, есть всплывающее меню, а также иконка находится в трее.

Источник

Как свернуть прогу в tray?

Как свернуть прогу в tray?

Содержание материала

Проще всего использовать RxTrayIcon компонент из библиотеки RxLib

procedure TForm1.ApplicationMinimize(Sender : TObject);

procedure TForm1.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

Нет такого понятия «свернуть в трей». Есть возможность только добавлять, удалять и менять значок в области трея. Сама же программа просто прячется.

Для изменения значка в трее используется класс TShellNotifyIcon модуля ShellApi

Объявим следующую процедруру:

uFlags:=NIF_ICON or NIF_ MESSAGE or NIF_TIP;

szTip:= ‘Хинт, который будет появляться у значка’ ;

Теперь, нам нужно отловить минимизацию приложения, для того, чтобы заменить стандартное действие Windows на «свёртывание в трей». Объявляем в секции protected процедуру

procedure ControlWindow( var Msg: TMessage); message WM_SYSCOMMAND;

procedure TForm1.ControlWindow( var Msg: TMessage);

if Msg.WParam = SC_MINIMIZE then

ShowWindow(Handle, SW_HIDE); // Скрываем программу

Теперь нам нужно, чтобы значок в трее мог реагировать на манипуляции с ним. Если Вы внимательно посмотрите процедру Ic(), то Вы увидите там ссылку на сообщение WM_USER+1. Это не что иное, как сообщение, которое приходит нам от этого значка. Обычно для значка в трее делают всплывающее меню и выводят там те или иные действия. Но TPopUpMenu делается обычно для правой кнопки, по левой же просто активируют приложение. На форму кидаем комопонент TPopUpMenu (пусть это будет PopUpMenu1) и заносим в него все пункты меню, которые мы хотим, чтобы онм появилис в меню, которое будет всплывать по нажатию правой кнопки на значке.

После этого описываем обработчик: В вышеназванную секцию protected добавляем ещё одну процедуру IconMouse, которая будет реагировать на сообщение WM_USER+1

procedure ControlWindow( var Msg: TMessage); message WM_SYSCOMMAND;

procedure IconMouse( var Msg: TMessage); message WM_USER + 1 ;

Теперь описываем собственно процедуру.

procedure TForm1.IconMouse( var Msg: TMessage);

GetCursorPos(p); // Запоминаем координаты курсора мыши

case Msg.LParam of // Проверяем какая кнопка была нажата

ShowWindow(Application.Handle, SW_SHOWNORMAL); // Восстанавливаем окно программы

SetForegroundWindow(Handle); // Восстанавливаем программу в ка?естве переднего окна

Для выполнения пунктов всплывающего меню, пишите стандартные обработчики onClick() для его пунктов.

Для работы с SystemTray существует всего одна функция. Вот ее

WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(

DWORD dwMessage, // message identifier

PNOTIFYICONDATA pnid // pointer to structure);

dwMessage может принимать одно из трех значений: NIM_ADD,

NIM_DELETE, NIM_MODIFY. Для добавления иконки он должен быть

установлен в NIM_ADD.

Параметр pnid имеет тип PNOTIFYDATA, который описан как:

typedef struct _NOTIFYICONDATA < // nid

Поля структуры NOTIFYICONDATA имеют следующий смысл:

тчика, передаваемого в hWnd.

полей несет действительную информацию.

Может быть одним из следующих значений: NIF_ICON,

NIF_MESSAGE, NIF_TIP или их OR-комбинацией.

событиях мыши. Желательно получать номер

сообщения вызовом RegisterWindowMessage(),

но допускаются и значения WM_USER+N, где N > 0.

Таким образом, для добавления иконки на Tray необходимо

заполнить экземпляр структуры NOTIFYICONDATA и вызвать функцию

Shell_NotifyIcon() с параметром NIM_ADD и указателем на

заполненный экземпляр структуры.

При добавлении иконки необходимо заполнить поля cbSize, hWnd,

uID, uFlags, uCallbackMessage, hIcon. Поле szTip можно оставить

пустым, если вам не нужен ToolTip. Поле uFlags должно содержать

как минимум NIF_MESSAGE | NIF_ICON.

Добавить комментарий

Не использовать не нормативную лексику.

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

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!

Источник

Свернуть приложение при запуске в трей

Свернуть приложение в трей при нажатии на кнопку Minimize
Скажите пожалуйста как сделать так например я нажал на кнопку minimize и чтобы она сразу свернулся.

как свернуть приложение в трей delphi. Смотреть фото как свернуть приложение в трей delphi. Смотреть картинку как свернуть приложение в трей delphi. Картинка про как свернуть приложение в трей delphi. Фото как свернуть приложение в трей delphiСвернуть приложение в трей
Подскажите пожалуйста, как сделать так, чтобы при щелчке на кнопку программа сворачивалась в трей.

Как по-человечески свернуть программу в трей при ее запуске?
Приветствую! Использую Lazarus 2.0.6. Вот код создания формы: procedure.

при FormActivate сворачивай, формы при FormCreat еще не существует, сворачивать нечего

Добавлено через 34 минуты
а нет, работает если руками вызвать как свернуть приложение в трей delphi. Смотреть фото как свернуть приложение в трей delphi. Смотреть картинку как свернуть приложение в трей delphi. Картинка про как свернуть приложение в трей delphi. Фото как свернуть приложение в трей delphi

как свернуть приложение в трей delphi. Смотреть фото как свернуть приложение в трей delphi. Смотреть картинку как свернуть приложение в трей delphi. Картинка про как свернуть приложение в трей delphi. Фото как свернуть приложение в трей delphiСвернуть приложение в трей
Я создал приложение и мне нужно, чтобы при нажатии на кнопку свернуть приложение появлялось в.

Свернуть приложение в трей
на форме есть Checkbox. Если поставить галочку, то приложение должно свернуться в трей, для.

как свернуть приложение в трей delphi. Смотреть фото как свернуть приложение в трей delphi. Смотреть картинку как свернуть приложение в трей delphi. Картинка про как свернуть приложение в трей delphi. Фото как свернуть приложение в трей delphiСвернуть приложение в трей
Здравствуйте! Подскажите, как сделать чтобы при нажатии на буттон или при запуске формы чтобы она.

Источник

Как свернуть приложение в трей delphi

Для работы со значками в трее используется функция Shell_NotifyIcon, объявленная в модуле ShellApi.

Теперь поясню как работает. Когда приложение минимизируется, но эта минимизация не перехватывается нашим обработчиком WM_SYSCOMMAND, мы перехватываем минимизацию в процедуре OnMinimizeProc и принудительно передаём сообщение о минимизации нашей форме, где оно и будет успешно отловлено нашим обработчиком сообщения WM_SYSCOMMAND, благодаря которому прога и «сворачивается» успешно в трей и в этом случае.

Теперь нам нужно, чтобы значок в трее мог реагировать на манипуляции с ним. Если Вы внимательно посмотрите процедру Ic(), то Вы увидите там ссылку на сообщение WM_USER+1. Это не что иное, как сообщение, которое приходит нам от этого значка. Обычно для значка в трее делают всплывающее меню и выводят там те или иные действия. Но TPopUpMenu делается обычно для правой кнопки, по левой же просто активируют приложение. На форму кидаем комопонент TPopUpMenu (пусть это будет PopUpMenu1) и заносим в него все пункты меню, которые мы хотим, чтобы онм появилис в меню, которое будет всплывать по нажатию правой кнопки на значке.
После этого описываем обработчик: В вышеназванную секцию protected добавляем ещё одну процедуру IconMouse, которая будет реагировать на сообщение WM_USER+1

Для выполнения пунктов всплывающего меню, пишите стандартные обработчики onClick() для его пунктов.

Данный опус писался только в форме, в IDE не тестировался, но работоспособный на 100%. Всё работает конечно, но не обессудьте, если будут ошибочки мелкие.

Источник

Свернуть приложение в трей

Подскажите пожалуйста, как сделать так, чтобы при щелчке на кнопку программа сворачивалась в трей?! Очень надо! Заранее спасибо!

Добавлено через 1 час 54 минуты 27 секунд
И вот еще дополнительный вопрос: как сделать оператор типа if. and. then. если в if указано свойство Text, например, Edita. Как например реакция на ввод пароля. Я сделал вот так: if Form1.Edit1.Text:=’99999′ and Form1.Edit2.Text:=’99999′ then ShowMessage (‘Привет!’);
У меня ничего не получилось! Подскажите please!

Свернуть приложение при запуске в трей
Procedure TForm1. WindowMessage (Var Msg:TMessage); Begin IF Msg.WParam=SC_MINIMIZE then Begin.

Свернуть приложение в трей при нажатии на кнопку Minimize
Скажите пожалуйста как сделать так например я нажал на кнопку minimize и чтобы она сразу свернулся.

как свернуть приложение в трей delphi. Смотреть фото как свернуть приложение в трей delphi. Смотреть картинку как свернуть приложение в трей delphi. Картинка про как свернуть приложение в трей delphi. Фото как свернуть приложение в трей delphiСвернуть прогу в трей
нашел компонент TextTrayIcon не пойму как с ним работать. А может кто другой способ знает для того.

Решение

По второму вопросу:

Вместо присваивания «:=» поставить просто равенство «=» и каждое из условий заключить в скобки:

как свернуть приложение в трей delphi. Смотреть фото как свернуть приложение в трей delphi. Смотреть картинку как свернуть приложение в трей delphi. Картинка про как свернуть приложение в трей delphi. Фото как свернуть приложение в трей delphi

Огромное спасибо!Пожалуйста помоги еще с одним! Не можешь привести список номеров клавиш? Ну я знаю что стрелки вверх, вправо, влево, вниз обозначаются как Key=39, key=38,key=40,key=37. Скажи как обозначить клавиши, начиная с Delete и кончая Enterом в отсеке калькулятора! Буквы не затрагивать!

И еще: напиши пожалуйста код, в котором выбирается случайное положение курсора на событии онкрит формы!

backspase-8
tab-9
enter=13
shift-16
ctrl-17
alt-18
pause-19
caps lock-20
esc-27
пробел-32
page up-33
page down-34
end-35
home-36
insert-45
delete-46
от 0 до 9— от 48 до 57
windows(левая)-91
windows(правая)-92
num lock-144
scroll lock-145
:-186
+-187
-190
?-191

Добавлено через 3 минуты 0 секунд
кстати, буквы и цифры имеют номера схожие с таблицей кодировки символов

Добавлено через 4 минуты 51 секунду
в отсеке калькулятора
минус(-)-109
плюс(+)-107
деление(/)-111
умножить(*)-106
del-110

Добавлено через 1 минуту 24 секунды
остальное ищи в инете на тему «виртуальные коды клавиш»

Добавлено через 3 минуты 33 секунды
Вот как переместить курсор;

А еще можно спросить? Как сделать так, чтобы при нажатии кнопки текст в Edit «просканировался» на наличие цифр, и если цифр нет выдалось сообщение «Цифр нет», а если есть, то «Цифры присутствуют»?

Добавлено через 1 час 11 минут 56 секунд
Если надо, я тут по материалам из одного сайта сделал программку, но без исходников! Только компилированный образец! Эта программа определяет название клавиши по ее номеру, который вводит пользователь. Но если поле, где должно быть название не изменилось, значит, такой клавиши нет! Вот здесь программа:

Если что, говорите кому надо определять клавиши по названиям, доработаю.

Есть два варианта, можно ограничить ввод букв:

а можно просто написать, сообщение цифры есть выдаст программа только если в едите только цифры, если же смесь цифр и букв, то выдаст сообщение, что цифр нету

Огромное спасибо!Пожалуйста помоги еще с одним! Не можешь привести список номеров клавиш? Ну я знаю что стрелки вверх, вправо, влево, вниз обозначаются как Key=39, key=38,key=40,key=37. Скажи как обозначить клавиши, начиная с Delete и кончая Enterом в отсеке калькулятора! Буквы не затрагивать!

И еще: напиши пожалуйста код, в котором выбирается случайное положение курсора на событии онкрит формы!

Свернуть в трей. CoolTrayIcon
Здравствуйте, Как свернуть окно в трей с помощью CoolTrayIcon при нажатии на кнопку «Свернуть»?

как свернуть приложение в трей delphi. Смотреть фото как свернуть приложение в трей delphi. Смотреть картинку как свернуть приложение в трей delphi. Картинка про как свернуть приложение в трей delphi. Фото как свернуть приложение в трей delphiКак свернуть прогу в трей?
Народ как свернуть прогу в трей ну соответственно вытаскивать оттуда и проводить всякие опирации.

Свернуть программу в трей. Ошибка.
Люди вообщем пишу программу которая получает информацию с сайта и выводит ее в трее при наведении.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *