0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 24
|
|
1 | |
Как задать строгое расположение иконок в трее для своего приложения?23.11.2018, 09:45. Показов 2028. Ответов 2
Метки нет (Все метки)
Воспользовавшись предложенным в теме Динамически отображать в SysTray информацию программы-таймера решением для вывода в систрее числа минут и секунд в программе таймера через использование двух компонентов TrayIcon с рисованием на их иконках, в ряде случаев столкнулся с проблемой.
Например, если при загрузке программы в Windows ХР, на которой программа была скомпилирована, расположение обеих иконок верное, т.е. слева иконка для показа минут, справа - для показа секунд (ММ:СС), то при загрузке той же самой программы уже на другом компьютере с Windows 7 - иконки сразу же при загрузке почему-то меняются местами. Т.е. там отображается все наоборот - слева иконка, показывающая секунды, а справа от нее - минуты (СС:ММ). В свойствах TrayIcon к сожалению нет ничего, чтобы могло бы задавать какое-то относительное расположение иконки в трее или хотя бы например порядок ее загрузки в самом приложении, скажем что-то наподобие Z-order. Пробовал поиграться с видимостью этих двух компонентов TrayIcon, просто попереключав ее. При этом после компиляции проекта на Windows 7 - порядок иконок там вроде бы становится нормальным. но зато теперь этот же исполняемый файл, но на компьютере с Windows ХР - снова дает неправильное расположение иконок теперь уже там! Ну и соответственно наоборот. Пробовал даже уже и какие-то чисто шаманские действия - скажем вставлять в процедуру создание формы подряд команды отключения-включения видимости обеих иконок. И опять - если получается нормальное расположение на одном компе, где проект компилируется - на другом снова показывается все наоборот. В связи с этим и сам вопрос - каким образом можно задать полностью однозначное расположение этих двух иконок в своем приложении? В принципе такое похоже как-то возможно - например в программе AnvirTaskManager при включении нескольких иконок в систрее для отображения памяти, процессора и т.п. - порядок их расположения, сколько доводилось наблюдать, никогда не менялся в зависимости от компьютера или системы, всегда очередность их показа одна и та же. Но как вот всего этого добиться в своем приложении на Lazarus?
0
|
23.11.2018, 09:45 | |
Ответы с готовыми решениями:
2
Как получить имена иконок приложения в трее для их сортировки? Появляется много иконок в трее при отладке приложения Задать глобально горячие клавиши только для своего приложения Как проигнорировать ToogleDesktop для своего приложения |
Супер-модератор
|
||||||
23.11.2018, 15:03 | 2 | |||||
Сообщение было отмечено Gennady7 как решение
Решение
Под Windows с этим хардкор еще тот (под Linux есть метод GetPosition, который прекрасно возвращает расположение иконки в трее, Windows-версия его не обрабатывает, и возвращает нули). Но я все-таки попробовал. Вот что получилось:
0
|
0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 24
|
|
26.11.2018, 13:58 [ТС] | 3 |
volvo, действительно отлично работает и на ХР, и на 7. Решение просто-таки замечательное! Спасибо большое!
Ради интереса проверю на днях и на десятке.
0
|
26.11.2018, 13:58 | |
26.11.2018, 13:58 | |
Помогаю со студенческими работами здесь
3
Как установить иконку для своего приложения Как создать установщик для своего приложения Задать сборке строгое имя Проблема с размерами иконок в трее Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |