Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сворачивание окна в TaskBar [D4, Win95/98]


ppp ©   (2002-04-18 03:54:00) 

Здравствуйте, уважаемые Мастера!

Возникла следующая проблема:
Имеется главная форма, если её свернуть, то всё Ok,
она своравчивается в TaskBar.
Далее в программе я для главной формы делаю Hide и
показываю др. форму ShowModal.
Но теперь, если эту форму свернуть, то она сворачивается
не в TaskBar, а к кнопке "Пуск".

Подскажите пожалуйста, как от этого избавиться?


ppp   (2002-04-18 12:41:00) [1]

Вроде бы что-то получилось, правда это же коряво
зачем это значок появляется просто так...

СПАСИБО Song


ppp   (2002-04-18 12:31:00) [2]

ничего не получается (((
этот значок ни на какие команды не реагирует


Song   (2002-04-18 11:42:00) [3]

Делайте либо MainForm.Hide
либо SW_HIDE

Возможно появление значка - это следствие CreateParams
А что Вам мешает его спрятать опять?

Если главная форма вообще не нужна, не проще ли TApplication.ShowMainForm:=False; ???


ppp   (2002-04-18 11:32:00) [4]

Есть главное окно MainForm
Скрываю его MainForm.Hide и
ShowWindow( Application.Handle, SW_HIDE )
Тем самым в TaskBar"е ничего нет
Затем показываю др. форму OtherForm.ShowModal
У этой формы я переопределил CreateParams установив
WS_EX_APPWINDOW, чтобы форма минимизировалась в TaskBar

При повторном запуске приложения проверяется запущено ли оно
(не важно как), а далее если оно запущено необходимо показать
окно (форму) этого приложения, либо это MainForm (с этим нет
проблем), либо это OtherForm (тут возникают косяки)

И ещё попутно, можно ли в OnShowForm закрыть её если что ни так
я делаю
ModalResult := mrCancel;
Close;
Но это не работает?!


Song   (2002-04-18 11:02:00) [5]

Не врубился. А как значок главного окна мог там появиться, если оно не было минимизиовано?
Объясните популярно, какие окна в каких состояних.


ppp   (2002-04-18 10:56:00) [6]

да окно восстанавливается, но при этом в TaskBar"е появляется ещё и значок главного окна, а этого не нужно =(


Song   (2002-04-18 10:43:00) [7]

Попробуйте делать SW_RESTORE не для MainForm, а для той формы, которая у Вас спущена в task. Найдите её handle через FindWindow()


ppp   (2002-04-18 10:33:00) [8]

т.е. как восстановить первый экземпляр программы из TaskBar"а, если открыта не главная форма, то показать ту которая открыта?


ppp   (2002-04-18 10:17:00) [9]

свернуть в TaskBar вроде бы получилось, но возникла др. проблема:
если та самая вторая форма свёрнута и пользователь запускает
второй экземпляр программы, то при восстановлении окна SW_RESTORE почему-то появляется ещё и основная форма.

Как восстановить свёрнутую вторую форму программно?


Song   (2002-04-18 08:10:00) [10]

Нужно перекрывать Create Params для каждой формы, котрую вы хотите свернуть в панель задач. Такой вопрос уже был, кстати.
Смотрите также SetWindowLong()


ppp   (2002-04-18 06:49:00) [11]

Помогите пожалуйста!

Нужно чтобы в TaskBar"е была одна иконка от программы,
и все формы сворачивались в TaskBar.


Наверх

Титульная страница Поиск, карта сайта Написать письмо