Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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ндрей Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Aндрей (статус: 1-ый класс)
Вопрос отправлен: 6 августа 2010, 13:02
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 18; последнее сообщение — 7 августа 2010, 11:55; участников в обсуждении: 4.
Тов. Женька

Тов. Женька (статус: 3-ий класс), 6 августа 2010, 13:14 [#1]:

Покажите код создания формы.
FormStyle случайно не меняли?
Aндрей

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ндрей

Aндрей (статус: 1-ый класс), 6 августа 2010, 14:08 [#3]:

FormStyle равен fsNormal
min@y™

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ндрей

Aндрей (статус: 1-ый класс), 6 августа 2010, 14:15 [#6]:

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

AOwner равен FormManager
Тов. Женька

Тов. Женька (статус: 3-ий класс), 6 августа 2010, 14:19 [#7]:

но тогда в TaskBar'e вообще моей проги не видно

Конечно, скрываете одну форму, а показать пытаетесь другую.
Aндрей

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ндрей

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ндрей

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™

min@y™ (статус: Доктор наук), 7 августа 2010, 11:55 [#18]:

Короче, делай, как я.
FormInputData := TFormInputData.Create(Application);
FormInputData.BorderStyle:= bsDialog;
try
  FormInputData.ShowModal();
finally
  FreeAndNil(FormInputData);
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:34
Выполнено за 0.05 сек.