Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поймать событие сворачивания/разворачивания окна [D6, WinXP]


Creep1 ©   (2005-07-21 21:33:00) 

Здраствуйте мастера.
Помогите пожалуйста обработать клик по кнопке сворачивание/разворачивание окна.


Creep1   (2005-07-21 22:34:00) [1]

Большое спасибо! вроде все работает.


begin...end   (2005-07-21 22:15:00) [2]

> Creep1   (21.07.05 22:05) [4]

Единственное, что я понял -- речь идёт всё же о форме.
Вот пример для сворачивания:

type
 TForm1 = class(TForm)
 private
   procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;
 ...
 end;

procedure TForm1.WMSysCommand(var Message: TMessage);
begin
 if Message.WParam and $FFF0 = SC_MINIMIZE then
   // Если неважно, ЧТО вызвало сворачивание окна -- нажатие кнопки
   // "Свернуть" или что-либо другое, то следующую строку нужно убрать
   if SendMessage(Handle, WM_NCHITTEST, 0, Message.LParam) = HTMINBUTTON then
     // Тут -- код по обработке события  
 inherited
end


Для разворачивания -- то же самое, только с SC_ MAXIMIZE и HT MAXBUTTON.


Creep1   (2005-07-21 22:05:00) [3]

Мене нужно что когда пользователь кликал на свернуть/развернуть,
запускалась моя процедура.
Например когда форма создается есть событие onCreate,
вот мне надо тоже только с сверуть/развернуть.
Я конечно фигово выразился :) ну надеюсь что хоть чучуть понятно.


begin...end   (2005-07-21 21:54:00) [4]

> Creep1   (21.07.05 21:47) [2]

ОК. Но сначала ответьте на несколько уточняющих вопросов:

1. Нужно перехватить именно КЛИК НА КНОПКЕ "Свернуть", или нужно просто ОТЛОВИТЬ СОБЫТИЕ свёртывания окна? Это я к тому, что окно может быть свёрнуто и без нажатия на кнопку "Свернуть" -- например, выбором соответствующего пункта в системном меню.
2. Речь идёт об окне (которое создано Вами на API) или о форме?


Creep1   (2005-07-21 21:47:00) [5]

Пожалуйста чуть по подробней, а то я не въезжаю.


begin...end   (2005-07-21 21:36:00) [6]

WM_SYSCOMMAND


Наверх

Титульная страница Поиск, карта сайта Написать письмо