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

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

А какое сообщение возникает когда...


pushkin42 ©   (2008-11-07 12:28:00) 

происходит перемещение или изменение размера TPanel на форме?

Т.е.: Есть форма, на ней лежат 2 панельки, надо отловить момент, когда первая панелька станет Visible=False и сделать действие над второй панелькой.

Вопрос в том, какое сообщение получают контролы при таком событии? WM_PAINT и WM_SIZE пробовал; WM_PAINT отрабатывается только если форму заставитьперерисоваться командой Repaint или что-то над ней пронести, чтобы она сама перерисовалась. Перерыл все сообщения - вышло так: форма получает сообщения 45131 и 33 (что они значат - я не нашел), но при этом если повесить обработчик на любое из них, он не срабатывает.


DVM   (2008-11-07 21:22:00) [1]


> pushkin42 ©   (07.11.08 13:02) [6]

вспоминается анекдот про мужика который потерял в одном месте ключи, а искал их в другом месте под фонарем, т.к. там светлее.

Панель - это окно и сообщения приходят ей, а не тому окну-форме, на которой она(панель) лежит. Вот и лови их в оконной процедуре панели, а не формы.


Сергей М.   (2008-11-07 13:14:00) [2]


> если ее видимость изменилась


если ее видимость неизменилась


Сергей М.   (2008-11-07 13:13:00) [3]


> WM_SHOWWINDOW обрабатывается только для формы, а не для
> контролов на ней


Кому послано, тот и обрабатывает.
С какого перепугу оно будет послано форме, если ее видимость изменилась ?
Изменилась ведь видимость окна панели, а не окна формы ..


clickmaker   (2008-11-07 13:06:00) [4]

> Видимо WM_SHOWWINDOW обрабатывается только для формы, а
> не для контролов на ней...

а как ты пробовал для контролов?


pushkin42   (2008-11-07 13:02:00) [5]

var TMyForm=class(TForm
[...]
 protected
   procedure AlertVisibility(var msg: TMessage); message WM_WINDOWPOSCHANGING;
[...]
end;

вот как-то так

Видимо WM_SHOWWINDOW обрабатывается только для формы, а не для контролов на ней...


clickmaker   (2008-11-07 12:59:00) [6]

WM_WINDOWPOSCHANGING у формы?


Сергей М.   (2008-11-07 12:57:00) [7]

Ну тогда тряси бубен.

Ибо справка неумолимо твердит, что

The WM_SHOWWINDOW message is sent to a window when the window is about to be hidden or shown


pushkin42   (2008-11-07 12:52:00) [8]

WM_WINDOWPOSCHANGING помогло вроде, но как мне получить Handle элемента, который был изменен? В какой переменной типа Msg: TMessage содержится это значение?


pushkin42   (2008-11-07 12:47:00) [9]

Не помогло.


clickmaker   (2008-11-07 12:45:00) [10]

WM_SHOWWINDOW, WM_SIZE


Наверх

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