Советы по Delphi



Покидание мыши области компонента


Кто-нибудь знает как мне определить момент покидания мыши области компонента?

    procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin
if
(X = 0) or (X = Panel1.Width) or (Y = 0) or (Y = Panel1.Width) then Screen.Cursor := crHSplit else Screen.Cursor := crDefault; end;

Техника, которую я применяю, подразумевает использование события OnMouseMove ВСЕМИ моими компонентами, (включая панель, на которой они расположены). В момент покидания мыши области кнопки возникает событие Panel.OnMouseMove у панели, на которой она расположена. Это может показаться непрактичным, но для решения моей задачи вполне подходит. BTW, было бы неплохо соорудить компонент, который имел бы опубликованными все события, начинающиемя с префикса CM_xxx, в этом случае ни одна из манипуляций мыши в области компонента не осталась бы незамеченной. Для справки привожу порядок возникновения всех возможных событий мыши: попадание мыши в область клиента OnEnter, MouseMove - перемещение мыши, следом идет щелчок OnClick, затем двойной щелчок и, наконец, уход мыши с области клиента (OnExit). [000186]




Содержание  Назад  Вперед