Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

Сворачивание окна в TaskBar 


ppp   (2002-04-18 03:54) [0]

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

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

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



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

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

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



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

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



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

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

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



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

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



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

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



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

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



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

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



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

Есть главное окно 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:42) [9]

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

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

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



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

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



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

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

СПАСИБО Song




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.036 c
3-94346           62mkv                 2002-04-10 10:27  2002.04.29  
Ребята, есть ли у кого-нибудь отдельный дистрибут QReport 3 ?


4-94640           skywalker             2002-02-22 13:01  2002.04.29  
Как скрыть процесс от TaskManager?


1-94476           Vik_R                 2002-04-16 10:03  2002.04.29  
hint


3-94335           Dmitry Zubtsov        2002-04-09 18:39  2002.04.29  
Доступ из Delphi 6 к MySQL


14-94539          kaif                  2002-03-21 00:05  2002.04.29  
Как купить D5 Pro?