С наступающим.
Проблемка следующая:
сделал приложение, должно сворачиваться в трей, использую компонент CoolTrayIcon. Все сделал как надо, поставил нужные значения на true. Но приложение сворачивается в нижний левый угол, а не в трей. Думаю что-то намудрил в свойствах формы, посмотрите пожалуйста, в аттаче скрин со всеми пропертис или тут http://rapidshare.com/files/178440670/31.12.jpg.
Прошу помощи, хочу закончить в этом году. Заранее благодарю.
Изображения
31.12.jpg (17.8 Кб, 190 просмотров) |
Последний раз редактировалось KiDoki; 31.12.2008 в 16:05 .
Регистрация: 29.01.2008
Сообщений: 2,406
1. В скрине ничего невидно.
2. Для сворачивания/разворачивания юзается следущий алгоритм:
procedure hideShowForm(const hide: boolean); begin if hide then begin Application.ShowMainForm := false; ShowWindow(Application.Handle, SW_HIDE); ShowWindow(Application.MainForm.Handle, SW_HIDE); end else begin Application.ShowMainForm := true; ShowWindow(Application.Handle, SW_RESTORE); ShowWindow(Application.MainForm.Handle, SW_NORMAL); SetForegroundWindow(Application.MainForm.Handle); ShowWindow(Application.Handle, SW_HIDE); < alwaysOnTop >end; end;
Можешь юзать его так:
СВОРАЧИВАНИЕ ЛЮБЫХ ПРИЛОЖЕНИЙ В ТРЕЙ | WINDOWS 7 | WINDOWS 8 | WINDOWS 10 | WINDOWS 11 | RBTray
hideShowForm(IsWindowVisible(handle));
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
Что бы сворачивать форму в трей при нажатии на значок свернуть, вам нужно установить свойство CoolTrayIcon1.MinimizeToTray:=True; у компонента CoolTrayIcon. А что бы вообще сворачивать, допустим при нажатии на кнопку, то сворачивайте так:
Application.Minimize; // это для наглядности CoolTrayIcon1.HideMainForm;
Всегда рад помочь!
Форумчанин
Регистрация: 06.10.2008
Сообщений: 102
Спасибо за отклики. Попробовал способ Терран’а, поставил на событие кнопки. Работает, когда нажимаю на иконку в трее, открывается форма, но её размеры становятся больше.
Как исправить?
ЗЫ
В аттаче скрин не виден, но если скачать с рапиды и увеличить, всё видно.
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
Спасибо за отклики. Попробовал способ Терран’а, поставил на событие кнопки. Работает, когда нажимаю на иконку в трее, открывается форма, но её размеры становятся больше. Как исправить?
при всем уважении, лучше использовать способ Altera.
Там таких проблем не может быть впринципе.
Немного модифицированная статья из drkb
=================================== ====
Для изменения значка в трее используется класс TShellNotifyIcon модуля ShellApi
Объявим следующую процедруру:
Параметры к ней такие: n — номер операции ( 1 — добавить, 2 — удалить, 3 — заменить) и Icon — сама иконка с которой будет делаться эта операция
теперь: OnMinimize формы
Ic(1, Application.Icon); // Добавляем значок в трей
ShowWindow(Handle, SW_HIDE); // Скрываем программу
Теперь нам нужно, чтобы значок в трее мог реагировать на манипуляции с ним. Если Вы внимательно посмотрите процедру Ic(), то Вы увидите там ссылку на сообщение WM_USER+1. Это не что иное, как сообщение, которое приходит нам от этого значка. Обычно для значка в трее делают всплывающее меню и выводят там те или иные действия.
Почему Сами Сворачиваются Игры, Программы и т.д. РЕШЕНИЕ 100%!!!
Но TPopUpMenu делается обычно для правой кнопки, по левой же просто активируют приложение. На форму кидаем комопонент TPopUpMenu (пусть это будет PopUpMenu1) и заносим в него все пункты меню, которые мы хотим, чтобы онм появилис в меню, которое будет всплывать по нажатию правой кнопки на значке.
После этого описываем обработчик: В вышеназванную секцию protected добавляем ещё одну процедуру IconMouse, которая будет реагировать на сообщение WM_USER+1
protected procedure ControlWindow(var Msg: TMessage); message WM_SYSCOMMAND; procedure IconMouse(var Msg: TMessage); message WM_USER + 1;
Теперь описываем собственно процедуру.
procedure TForm1.IconMouse(var Msg: TMessage); var p: tpoint; begin GetCursorPos(p); // Запоминаем координаты курсора мыши case Msg.LParam of // Проверяем какая кнопка была нажата WM_LBUTTONUP, WM_LBUTTONDBLCLK: begin Ic(3, Applicattion.Icon); // Удаляем зна?ок из трея ShowWindow(Application.Handle, SW_SHOWNORMAL); // Восстанавливаем окно программы end; WM_RBUTTONUP: begin SetForegroundWindow(Handle); // Восстанавливаем программу в ка?естве переднего окна PopupMenu1.Popup(p.X, p.Y); // Заставляем всплыть тот самый TPopUp о котором я говорил ?уть раньше PostMessage(Handle, WM_NULL, 0, 0) // Обнуляем сообщение end; end; end;
Для выполнения пунктов всплывающего меню, пишите стандартные обработчики onClick() для его пунктов.
Источник: www.programmersforum.ru
Стим и как он сворачивается
Добрый день! Купил ссд, переставил систему, все устраивает. Возникла проблема. Всегда в закрепленном на панели задач был стим, никаких проблем не испытывал. Сейчас же стим сворачивается только в трей, при разворачивании через трей открывается за пол секунды, при клике на закрепленную иконку на панели задач — секунд 10.
Можно ли сделать чтобы стим сворачивался как тот же хром и висел в панели задач? Крайне не удобно разворачивать через трей, а через панель задач ощущение что все тупо зависло и желание нажать по новой. Поискал в настройках стима, ничего нет. В инете поискал параметры запуска стима, тоже ничего похожего. Может быть есть какая лазейка?
17 Nov 2019 в 04:09 #2
а если развернуть и через альттаб перейти в другое окно то тоже пропадает?
Источник: dota2.ru
TopSite +Chromium перестал сворачиваться в трей
С одним из последних обновлений TopSite +Chromium перестал сворачиваться в трей.
Когда нажимаю на крестик в правом верхнем углу окна программы, программа вообще пропадает из вида. В трее ее нет, но раньше она там была, и это было правильно.
А сейчас после нажатия на крестик (как мы обычно завершаем работу приложений) программа продолжает жить в недрах операционной системы, и это правильно. Но неправильно то, что теперь мы не видим это. Нам нужно видеть, что программа жива и здорова.
visibility 1 320
paveldvlip 28 ФЕВР. 2020 Г., 13:28
Сейчас проверил — всё нормально работает. Проверьте, активна ли настройка сворачивания в трей и не попал ли значок в скрытые значки?
Superbank 28 ФЕВР. 2020 Г., 14:28
Ответ для «paveldvlip»
на сообщение от 28 ФЕВР. 2020 Г., 13:28
Сейчас проверил — всё нормально работает. Проверьте, активна ли настройка сворачивания в трей и не попал ли значок в скрытые значки?
Конечно, проверил. Это первое, что я сделал!
- Настройка сворачивания в трей активна (галочка установлена)
- Среди скрытых значков трея Топсайта нет
Попробую перезапустить компьютер, может быть что-то случилось. Такое бывает иногда.
paveldvlip 28 ФЕВР. 2020 Г., 14:42
Ответ для «Superbank»
на сообщение от 28 ФЕВР. 2020 Г., 14:28
- Настройка сворачивания в трей активна (галочка установлена)
- Среди скрытых значков трея Топсайта нет
Операционная система какая у вас?
Superbank 28 ФЕВР. 2020 Г., 16:37
Ответ для «paveldvlip»
на сообщение от 28 ФЕВР. 2020 Г., 14:42
Операционная система какая у вас?
Конечно же Windows 8.1, как и у всех профессионалов!
paveldvlip 29 ФЕВР. 2020 Г., 0:56
Ответ для «Superbank»
на сообщение от 28 ФЕВР. 2020 Г., 16:37
Конечно же Windows 8.1, как и у всех профессионалов!
Перепроверил весь механизм. В него не вносилось никаких изменений долгое время. Вероятно, проблема на вашем компьютере. Затрудняюсь предположить чем это вызвано.
Superbank 29 ФЕВР. 2020 Г., 4:12
Ответ для «paveldvlip»
на сообщение от 29 ФЕВР. 2020 Г., 0:56
Перепроверил весь механизм. В него не вносилось никаких изменений долгое время. Вероятно, проблема на вашем компьютере. Затрудняюсь предположить чем это вызвано.
Хорошо, Вы пока особо не заморачивайтесь. Скорее всего, действительно, что-то переклинило в моей операционной системе Windows 8.1. Хоть она и считается самой стабильной из всех версий Windows, но и там тоже бывают разные непонятные вещи. Мне сейчас лень перезагружаться, у меня компьютер работает по 24 часа в сутки, не выключаясь. После перезагрузки, возможно, эта проблема уйдёт сама собой.
Источник: topsite-program.ru