Типы программирования, программирование, языки программирования, книги программирование На сайте представлена информация про программирование в Интернете и работу  

Коллеги, занимательная задачка для треннировки.
TApplication, Приемы работы
UPS., Как поймать команду от UPS'a ?
Борты у Формы
Кто создает свои компоненты? Поделитесь опытом, прорисовка рамки
Компоненты, А где найти компоненты?
Работа с Com 1,2 портами, Работа с Com 1,2 портами
Вопрос, DLL как.....?
Outlook Express, Отправка e-mail с прицепом
добраться до закладки в WORD, Как добраться до закладки в WORD?
Как управлять Internet Explorer-oм из Delphi?
Как свернут окно в .....?
Опять о чужих окнах..., Вопрос к знатокам
На счет файлов...
TChartSeries, creating
Pascal-----Assembler
Без BDE, как Открыть таблицу по сети без DBE
Загрузка курсора в TImage???
Как поставить каретку TMemo в нужную строку, Как поставить каретку TMemo в нужную стр
Работа с чужим приложением, Как закрыть другое приложение?
У меня появилась новая технология но коечто неясно, Запись в exe и самочтение записи
Как картинку из Imagelist1 запихать в Image1
!!!!!!!!!!!!ПОМОГИТЕ&#, Как....
Грузим ресурсы из DLL, Грузим ресурсы из DLL
Чего за дела?, Как узнать, что вызвало запуск DLL?
Excel
Как работать с ADO компонентами в DLL?, Практический совет
Как заставить работать COM объекты в потоке?, Практический совет
Как отображать координаты курсора
Как изменить код программы, Каким образом...
Текст в иконку, Пример кода
Форматим диск, Пример кода
Power
Ресурсы в Delphi
Ловля клавишь!
Базы данных!!!
Вопрос..., Плавная прокрутка....
TBitmap ?, Как наложить изображение.
ODBC-драйвер
SQL
Напоминалка..., Напоминалка...
Как Вы относитесь к курящим девушкам?
Как создать link на приложение в window 2000
Помогите найти ошибку в задачке....! На паскале!
mcisendstring,..., info
Таблы и перетаскивание
Клонирование Форм?
Shape, Как создать свой приметив????
RichEdit ?
Определение цвета, Как определить цвет точки на экране?
Прдотвращение второга запуска.
Появился новый раздел!, Милости просим
2 варианта смены обоев, какой из вариантов рациональнее...
Информация о состоянии клавиатуры, Примеры кода
Совмещение функций..., Совмещение функций...
Глючит прога ХЕЛП!!!
SHAREWARE, Как создать SHAREWARE программу?
Memo В базах?
Создание таблицы
Распросторонение программы на Delphi 5
Билдер и Дельфи, соответствие типов данных
Интерфейс Delphi 5
if Odd(GetAsyncKeyState(113))
Реакция на срабатывание кнопки Enter в Memo компон, Реакция на срабатывание кнопки Enter в M
Нужно узнать размер файла после сжатия., Нужно узнать размер файла после сжатия.
Имитация печатной машинки....
Как проиграть wav файл, который находится в DLL?, Как проиграть wav файл, который находитс
convert *bmp into ASCII
Dll-Как юзать?
текстовый файл, текстовый файл

Платные хостинги     Раскрутка сайта     Книги по программированию


Как свернут окно в .....?

Только здесь 1000 посетителей на Ваш сайт всего за 3 у.е.!

- Давайте делать на каждый вопрос отдельный топик.1) Наиболее простое решение использовать компоент TrayIcon из RxLib2) Коды клавиш - это определенные в Дельфи константы: vk_F1 и vk_F12 (реальное значение констант можно найти поискав константы в модуле Windows.pas)

- Доступный вариант "свёртывания программы в трей" для людей, владеющих Дельфи на любом уровне.

- Взято с сообщения Song на другом форуме:http://pascal.sources.ru/cgi-bin....0241631Нет такого понятия "свернуть в трей". Есть возможность только добавлять, удалять и менять значок в области трея. Сама же программа просто прячется.Для изменения значка в трее используется класс TShellNotifyIcon модуля ShellApiОбъявим следующую процедруру:Параметры к ней такие: n - номер операции ( 1 - добавить, 2 - удалить, 3 - заменить) и Icon - сама иконка с которой будет делаться эта операцияКод Procedure TForm1.Ic(n:Integer;Icon:TIcon);Var Nim:TNotifyIconData;begin With Nim do  Begin   cbSize:=SizeOf(Nim);   Wnd:=Form1.Handle;   uID:=1;   uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;   hicon:=Icon.Handle;   uCallbackMessage:=wm_user+1;   szTip:='Хинт, который будет появляться у значка';  End; Case n OF  1: Shell_NotifyIcon(Nim_Add,@Nim);  2: Shell_NotifyIcon(Nim_Delete,@Nim);  3: Shell_NotifyIcon(Nim_Modify,@Nim); End;end;highlightSyntax('delphimZWIzZ','delphi');Теперь, нам нужно отловить минимизацию приложения, для того, чтобы заменить стандартное действие Windows на "свёртывание в трей". Объявляем в секции protected процедуруКод protected Procedure ControlWindow(Var Msg:TMessage); message WM_SYSCOMMAND;...Procedure TForm1.ControlWindow(Var Msg:TMessage);Begin IF Msg.WParam=SC_MINIMIZE then  Begin   Ic(1,Application.Icon);  // Добавляем значок в трей   ShowWindow(Handle,SW_HIDE);  // Скрываем программу End else inherited;End;highlightSyntax('delphiEwNjliY','delphi');Теперь нам нужно, чтобы значок в трее мог реагировать на манипуляции с ним. Если Вы внимательно посмотрите процедру Ic(), то Вы увидите там ссылку на сообщение WM_USER+1. Это не что иное, как сообщение, которое приходит нам от этого значка. Обычно для значка в трее делают всплывающее меню и выводят там те или иные действия. Но TPopUpMenu делается обычно для правой кнопки, по левой же просто активируют приложение. На форму кидаем комопонент TPopUpMenu (пусть это будет PopUpMenu1) и заносим в него все пункты меню, которые мы хотим, чтобы онм появилис в меню, которое будет всплывать по нажатию правой кнопки на значке.После этого описываем обработчик: В вышеназванную секцию protected добавляем ещё одну процедуру IconMouse, которая будет реагировать на сообщение WM_USER+1Код protected Procedure ControlWindow(Var Msg:TMessage); message WM_SYSCOMMAND; Pocedure 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;highlightSyntax('delphiUyMmI3NW','delphi');Для выполнения пунктов всплывающего меню, пишите стандартные обработчики onClick() для его пунктов. Данный опус писался только в форме, в IDE не тестировался . Всё работает конечно, но не обессудьте, если будут ошибочки мелкие.          

Интернет казино     Онлайн игры     Увеличение члена     Купить DVD


Главная страница | программирование 1с учебник | программирование сотовых | офшорное программирование | примеры линейное программирование | анализ программирование | программирование делфи | cgi программирование | программирование atmel | школа программирования | типы программирования | практика программирования | программирование autocad | программирование профессиональное | обзор языков программирования | среда программирования delphi | задачи целочисленного программирования | характеристика языка программирования | стиль программирования | постановка задачи программирование | программирование серверов | программирование диплом скачать | применение программирования | Ссылки

Все про практика программирования