@krka92

Как определить источник изменения размера окна?

У меня есть компонент, унаследованный от TWInControl. В нем я пишу обработчик изменения размера окна:
procedure WMSIZE(var Message: TWMSIZE); message WM_SIZE;

Размер окна я могу изменять:
1. Мышью
2. Изменяя свойства размеров прям в коде.
Мне нужно узнать как именно я изменил размер, если в обоих вариантах вызывается WMSIZE.
Может кто сталкивался или у кого какие идеи есть? Буду благодарен.
  • Вопрос задан
  • 51 просмотр
Решения вопроса 2
longclaps
@longclaps
Наверное, мой юный друг, ты можешь, вызывая событие WMSIZE в своём коде, так же взводить какой-то флаг, а сбрасывать его в своём обработчике.
Ответ написан
@krka92 Автор вопроса
В компоненте пишем обработчик сообщения WM_SIZING. Сообщение отсылается только при действиях пользователя.
procedure THiddenClassName.WmSizing(var Message: TMessage);
var
  Rect: PRect;
begin
  inherited;
  Rect := PRect(Message.LParam);
  FMaxHeight := Rect^.Height;
end;


Здесь WParam - Сторона, которую в данный момент изменяют. LParam - указатель на Rect
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы