Главная » Delphi » Внутренние  сообщения компонентов  VCL

0

Компоненты библиотеки VCL используют обширный набор  собственных внутрен них сообщений и уведомлений. Хотя в создаваемых приложениях Delphi  вряд ли потре буется работать с этими  сообщениями непосредственно, тем не менее  разработчику компонентов будет весьма  полезно познакомиться с ними.  Имена  этих  сообщений все гда начинаются с префикса CM_ (сообщения компонентов — component messages)  или CN_ (уведомления  компонентов —  component  notification). Они  используются  компонентами библиотеки VCL для управления состоянием их внутренних свойств — например для пе редачи фокуса,  установки цвета,  изменения состояния видимости, выдачи  требования перерисовки окна,  поддержки операций перетаскивания и т.д. Полный список  этих со общений можно  найти в разделе интерактивной  справочной системы Delphi, посвя щенном созданию пользовательских компонентов.

Ординарная задача — как обнаружить, что курсор мыши переместился в область элемента управления или покинул  ее? Это можно  узнать перехватив и обработав спе циальные  сообщения: CM_MOUSEENTER и  CM_MOUSELEAVE. Рассмотрим следующий компонент:TSpecialPanel = class(TPanel)

protected

procedure CMMouseEnter(var

Msg: TMessage); message CM_MOUSEENTER;

procedure CMMouseLeave(var

Msg: TMessage); message CM_MOUSELEAVE;

end;

.

.

.

procedure TSpecialPanel.CMMouseEnter(var Msg: TMessage);

begin

inherited;

Color := clWhite;

end;

procedure TSpecialPanel.CMMouseLeave(var Msg: TMessage);

begin

inherited;

Color := clBtnFace;

end;

Этот  компонент, обрабатывающий специальные сообщения, изменяет цвет  пане ли на белый  (clWhite), если  курсор  мыши  находится над ее поверхностью, а затем, когда он покидает панель компонента, возвращает ему исходный цвет (clBtnFace).

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии