![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Den |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.9.2002 Репутация: нет Всего: нет |
При минимизации формы я использую RxTrayIcon, чтобы при этом исчезла
кнопка из Панели задач вызываю ShowWindow(Application.Handle,SW_HIDE). Но вот незадача - не получается при восстановлении приложения (после клика на TrayIcon) добиться, чтобы оно становилось поверх других окон и обязательно было активным. Пересмотрел кучу FAQ-ов, но не нашел реально работающих примеров. Был бы весьма признателен за помощь. Drelphi 6, Win98 |
|||
|
||||
| Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
А так пробовал:
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
| Den |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.9.2002 Репутация: нет Всего: нет |
Пробовал - наверх при этом окно не выходит. Если сделать Application.MainForm.FormStyle := fsStayOnTop; Application.MainForm.FormStyle := fsNormal; то оно становится верхним, но не активизируется. |
||||||
|
|||||||
| FdX |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Попробуй винапи SetActiveWindow(HWND hWnd);
Должно работать |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Клик по значку обрабатываете самостоятельно?
Вообще для того чтобы сделать актинвным окно, используют SetForeGroundWindow() -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Den |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.9.2002 Репутация: нет Всего: нет |
Пробовал - те-же пироги ... :-(
Может я чего не так делаю. Вроде собрал минимальный тестовый проект: type TForm1 = class(TForm) RxTrayIcon1: TRxTrayIcon; procedure FormCreate(Sender: TObject); procedure RxTrayIcon1Click(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private procedure ApplicationMinimize(Sender : TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ApplicationMinimize(Sender : TObject); begin RxTrayIcon1.Show; ShowWindow(Application.Handle,SW_HIDE); ShowWindow(Handle,SW_HIDE); end; procedure TForm1.FormCreate(Sender: TObject); begin RxTrayIcon1.Icon := Application.Icon; Application.OnMinimize := ApplicationMinimize; end; procedure TForm1.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Application.Restore; ShowWindow(Application.Handle,SW_SHOW); ShowWindow(Handle,SW_SHOW); SetActiveWindow(Application.MainForm.Handle); RxTrayIcon1.Hide; end; |
|||
|
||||
| Den |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.9.2002 Репутация: нет Всего: нет |
По-поводу SetForegroundWindow - действительно это так. Поэтому спасибо!
Все получилось. Хотя ранее я пробовал этот вариант и - глухо... Хорошо что уважаемый Song напомнил мне об этом, а то я уже закопался в поисках и стал забывать с чего все началось. Дело оказалось в следующем : гасить Tray-иконку надо в последнюю очередь, именно так все работает(ранее сначала гасил Tray-иконку, а уже потом восттанавливал свое приложение). Таким образом правильно работает следующий код: procedure TForm1.ApplicationMinimize(Sender : TObject); begin RxTrayIcon1.Show; ShowWindow(Application.Handle,SW_HIDE); end; procedure TForm1.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Application.Restore; SetForeGroundWindow(Application.MainForm.Handle); RxTrayIcon1.Hide; end; Спасибо всем, принявшим участие в обсуждении! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |