|
Вопрос # 4 488/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Возникла проблема отображения программы в TaskBar'е.
Есть главная форма FormManager, которая порождает дочерние формы ввода данных FormInputData.
Для отображения FormInputData делаю FormInputData.ShowModal тогда на заднем плане естественно видна FormManager(потому что из нее запускается все).
Проблема: когда нахожусь в FormInputData, нажимаю свернуть - приложение сворачивается. А когда щелкаю по панели этой программы в TaskBar'е появляется главная форма FormManager (с которой ничего сделать нельзя), а не нужная FormInputData. Нужная форма FormInputData появляется только при комбинации Alt+Tab.
Нужно: в идеале, чтобы когда видна FormInputData, то не видна FormManager и в TaskBar'е виднелось моя прога.
Пробовал скрыть FormManager,
при
TForm(FormInputData.Owner).Hide;
FormInputData.ShowModal();
но тогда в TaskBar'e вообще моей проги не видно
Использую Delphi 2010
Подскажите, кто чем может
Спасибо
 |
Вопрос задал: Aндрей (статус: 1-ый класс)
Вопрос отправлен: 6 августа 2010, 13:02
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 18; последнее сообщение — 7 августа 2010, 11:55; участников в обсуждении: 4.
|
Тов. Женька (статус: 3-ий класс), 6 августа 2010, 13:14 [#1]:
Покажите код создания формы.
FormStyle случайно не меняли?
|
|
Aндрей (статус: 1-ый класс), 6 августа 2010, 14:04 [#2]:
код создания формы
FormInputData := TFormInputData.Create(AOwner);
причем
TFormInputData = class(TForm)
...
constructor TFormInputData.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
end;
FormStyle не менял
|
|
Aндрей (статус: 1-ый класс), 6 августа 2010, 14:08 [#3]:
FormStyle равен fsNormal
|
|
min@y™ (статус: Доктор наук), 6 августа 2010, 14:10 [#4]:
Если форма модальная, то нафига давать возможность свернуть приложение? Сделай у неё BorderStyle:= bsDialog и не парься.Цитата (Aндрей):
FormInputData := TFormInputData.Create(AOwner);
Чему здесть равен Owner?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Тов. Женька (статус: 3-ий класс), 6 августа 2010, 14:10 [#5]:
попробуйте
with TFormInputData.Create(nil) do
try
ShowModal;
finally
Free;
end;
|
|
Aндрей (статус: 1-ый класс), 6 августа 2010, 14:15 [#6]:
Возможность свернуть приложение должна быть(глянуть там в другом месте то, что нужно и т.п.)
AOwner равен FormManager
|
|
Тов. Женька (статус: 3-ий класс), 6 августа 2010, 14:19 [#7]:
но тогда в TaskBar'e вообще моей проги не видно
Конечно, скрываете одну форму, а показать пытаетесь другую.
|
|
Aндрей (статус: 1-ый класс), 6 августа 2010, 14:20 [#8]:
Тов. Женька:
with TFormInputData.Create(nil) do
try
ShowModal;
finally
Free;
end;
если так сделать, проблема останется
Проблема: когда нахожусь в FormInputData, нажимаю свернуть - приложение сворачивается. А когда щелкаю по панели этой программы в TaskBar'е появляется главная форма FormManager (с которой ничего сделать нельзя), а не нужная FormInputData. Нужная форма FormInputData появляется только при комбинации Alt+Tab.
|
|
Тов. Женька (статус: 3-ий класс), 6 августа 2010, 14:20 [#9]:
Есть же масса других способов глянуть в другое место.
|
|
Тов. Женька (статус: 3-ий класс), 6 августа 2010, 14:22 [#10]:
А где сворачиваете, вернее, что именно.
|
|
Aндрей (статус: 1-ый класс), 6 августа 2010, 14:23 [#11]:
сворачиваю форму FormInputData стандартной кнопкой "_" справа вверху
|
|
Вадим К (статус: Академик), 6 августа 2010, 14:26 [#12]:
А почему бы не запретить кнопку свернуть в формы пароля? и всех делов то (BorderIcon вроде).
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Тов. Женька (статус: 3-ий класс), 6 августа 2010, 14:27 [#13]:
Так форма-родитель должна оставаться не свернутой. Так?
|
|
Тов. Женька (статус: 3-ий класс), 6 августа 2010, 14:34 [#14]:
Впишите в событие главной формы FormShow следующее:
if ActiveMDIChild <> nil then
ActiveMDIChild.WindowState := wsNormal;
|
|
Aндрей (статус: 1-ый класс), 6 августа 2010, 14:55 [#15]:
Тов. Женька:
if ActiveMDIChild <> nil then
ActiveMDIChild.WindowState := wsNormal;
Проблема осталась
Вадим К:
"А почему бы не запретить кнопку свернуть в формы пароля? и всех делов то (BorderIcon вроде)"
Не понял, причем тут пароль, у меня вообще паролей нет никаких
|
|
Тов. Женька (статус: 3-ий класс), 6 августа 2010, 15:00 [#16]:
Тогда напишите демонстрационный пример и выложите исходники.
|
|
Вадим К (статус: Академик), 6 августа 2010, 15:03 [#17]:
to Андрей:
имелась ввиду форма FormInputData
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 7 августа 2010, 11:55 [#18]:
Короче, делай, как я.
FormInputData := TFormInputData.Create(Application);
FormInputData.BorderStyle:= bsDialog;
try
FormInputData.ShowModal();
finally
FreeAndNil(FormInputData);
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|