Форум: "Основная";
Поиск по всему сайту: 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.021 c
7-94601           Albun                 2002-01-31 23:33  2002.04.29  
USB Программирование


1-94457           LazorenkoX            2002-04-16 09:16  2002.04.29  
TStringGrid.PrintMe()


1-94380           Александр Арсентьев   2002-04-17 09:52  2002.04.29  
глюки Делфи


4-94609           Begunkov              2002-02-21 20:00  2002.04.29  
Блокировка части файла


3-94316           fishka                2002-04-09 10:26  2002.04.29  
Перевод базы с InterBase5.0 на InterBase 6.0