| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как свернут окно в .....? |
| Автор: Spawn 4.6.2002, 17:58 |
| 1)У меня возник вопрос: как свернуть программу не при помощи Minimaze, а в ту часть(не помню как называется) где находятся данные о времени, смена раскладки клавы и т. п. 2)Подскажите плз какую кодировку имеют клавиши от F1 до F12. Заранее спасибо |
| Автор: Vit 4.6.2002, 18:02 |
| Давайте делать на каждый вопрос отдельный топик. 1) Наиболее простое решение использовать компоент TrayIcon из RxLib 2) Коды клавиш - это определенные в Дельфи константы: vk_F1 и vk_F12 (реальное значение констант можно найти поискав константы в модуле Windows.pas) |
| Автор: Song 4.6.2002, 18:15 |
| http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1020241631 |
| Автор: Vit 4.6.2002, 19:22 | ||||||
| Взято с сообщения Song на другом форуме: http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1020241631 Нет такого понятия "свернуть в трей". Есть возможность только добавлять, удалять и менять значок в области трея. Сама же программа просто прячется. Для изменения значка в трее используется класс TShellNotifyIcon модуля ShellApi Объявим следующую процедруру: Параметры к ней такие: n - номер операции ( 1 - добавить, 2 - удалить, 3 - заменить) и Icon - сама иконка с которой будет делаться эта операция
Теперь, нам нужно отловить минимизацию приложения, для того, чтобы заменить стандартное действие Windows на "свёртывание в трей". Объявляем в секции protected процедуру
Теперь нам нужно, чтобы значок в трее мог реагировать на манипуляции с ним. Если Вы внимательно посмотрите процедру Ic(), то Вы увидите там ссылку на сообщение WM_USER+1. Это не что иное, как сообщение, которое приходит нам от этого значка. Обычно для значка в трее делают всплывающее меню и выводят там те или иные действия. Но TPopUpMenu делается обычно для правой кнопки, по левой же просто активируют приложение. На форму кидаем комопонент TPopUpMenu (пусть это будет PopUpMenu1) и заносим в него все пункты меню, которые мы хотим, чтобы онм появилис в меню, которое будет всплывать по нажатию правой кнопки на значке. После этого описываем обработчик: В вышеназванную секцию protected добавляем ещё одну процедуру IconMouse, которая будет реагировать на сообщение WM_USER+1
Для выполнения пунктов всплывающего меню, пишите стандартные обработчики onClick() для его пунктов. Данный опус писался только в форме, в IDE не тестировался . Всё работает конечно, но не обессудьте, если будут ошибочки мелкие. |