Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2014, 20:57   #1
Xo66um
Форумчанин
 
Регистрация: 11.05.2013
Сообщений: 154
По умолчанию Вопрос о сворачивании программы

Всем привет.

Собственно, не могу корректно определить, когда программа сворачивается...

Код:
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
 case Msg.CmdType of
  SC_MINIMIZE:
   begin
    Application.MainForm.Hide;
   end;
 end;
end;
Так вроде все хорошо, но не работает кнопка "закрыть" и "развернуть", из-за отсутствия inherited, но если добавить inherited, то форма исчезает, а кнопка на панели задач - нет.

Код:
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
 case Msg.CmdType of
  SC_MINIMIZE:
   begin
    Application.MainForm.Hide;
   end;
 end;
 inherited;
end;
Но это полбеды, т.к. если в обоих случаях при видимой форме нажать на кнопку на панели задач, то программа просто свернется, и не выполнится никакого действия.

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

P.S.
Delphi 7
Xo66um вне форума Ответить с цитированием
Старый 16.01.2014, 21:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вопросы:
1) Использовать OnMinimize компонента Application не вариант?
2) Кажется в Onresize формы можно отслеживать свойство WindowState для определения минимизации
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2014, 00:07   #3
милт
Форумчанин
 
Регистрация: 19.03.2012
Сообщений: 108
По умолчанию

procedure TForm1.ApplicationEvents1Minimize(S ender: TObject);
begin
minimiz:=true;
end;

procedure TForm1.ApplicationEvents1Restore(Se nder: TObject);
begin
minimiz:=False;
end;
милт вне форума Ответить с цитированием
Старый 17.01.2014, 07:07   #4
Xo66um
Форумчанин
 
Регистрация: 11.05.2013
Сообщений: 154
По умолчанию

Точно, ApplicationEvents - вариант, но вот OnResize у формы - у меня не получается определить свернутую форму...

Код:
procedure TForm1.FormResize(Sender: TObject);
begin
 if Form1.WindowState = wsMinimized then
  begin
   Form1.Hide;
  end;
end;
Ничего не происходит, программа просто сворачивается на панель задач...

Но вопрос решен, Stilet, милт, спасибо вам большое
Xo66um вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в MDI спрятать панельку, отображающаяся при сворачивании child-окна? fedorov2012 Общие вопросы Delphi 9 10.01.2013 00:29
команды посылаемые окном при сворачивании lestor Win Api 8 02.04.2011 23:21
как при сворачивании формы скрыть ее из панели betirsolt Общие вопросы Delphi 3 17.04.2010 17:57
События происходящие, при сворачивании, разворачивании Casper-SC Общие вопросы .NET 4 17.12.2009 18:20
проблема при сворачивании форм Ko$tello Общие вопросы Delphi 8 16.11.2006 18:15