Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];

Вниз

Как поймать момент покидания курсором контрола?   Найти похожие ветки 

 
asdf2   (2008-04-08 14:45) [0]

Сабж.


 
Сергей М. ©   (2008-04-08 14:47) [1]

OnMouseLeave ?


 
asdf2   (2008-04-08 14:48) [2]


> Сергей М. ©   (08.04.08 14:47) [1]

угу, это и хочу сделать, тока в D7


 
Семеныч   (2008-04-08 14:55) [3]

Обработайте сообщение CM_MOUSELEAVE


 
DVM ©   (2008-04-08 14:55) [4]

unit FPanel;

interface

uses
 SysUtils, Classes, Controls, ExtCtrls, Messages;

type
 TFPanel = class(TPanel)
 private
   FOnMouseEnter, FOnMouseLeave, FOnPaint: TNotifyEvent;
   procedure CMMouseEnter(var msg:TMessage); message CM_MOUSEENTER;
   procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
 protected
    procedure Paint; override;
 public
   property Canvas;
 published
   property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
   property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
   property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
 end;

procedure Register;

implementation
                     
procedure Register;
begin
 RegisterComponents("MyComponent", [TFPanel]);
end;

{ TFPanel }

procedure TFPanel.CMMouseEnter(var msg: TMessage);
begin
 inherited;
 if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);
end;

procedure TFPanel.CMMouseLeave(var msg: TMessage);
begin
 inherited;
 if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
end;
procedure TFPanel.Paint;
begin
 inherited;
 if Assigned(FOnPaint) then FOnPaint(Self);
end;

end.


 
antonn ©   (2008-04-08 14:56) [5]

значит надо в WndProc() нужного окна поймать CM_MOUSELEAVE


 
Семеныч   (2008-04-08 15:02) [6]

> DVM ©   (08.04.08 14:55) [4]

При профессиональной разработке компонентов, создавая событие, обычно вводят метод его диспечеризации.


 
DVM ©   (2008-04-08 15:03) [7]

Только способ CM_MOUSELEAVE не очень надежен. Бывает (редко), что мышь уже не над контролом, а сообщение не пришло. Если это очень критично, то не помешает еще и таймер.


 
DVM ©   (2008-04-08 15:05) [8]


> При профессиональной разработке компонентов

А кто говорил про профессиональную разработку компонентов?

Этот кусок с форума http://forum.vingrad.ru/forum/topic-181327.html.
А DoMouseEnter, DoMouseLeave автор я думаю догадается.


 
asdf2   (2008-04-08 15:12) [9]


> DVM ©   (08.04.08 15:05) [8]

догадаюсь
спасибо


 
Leonid Troyanovsky ©   (2008-04-08 15:35) [10]


> asdf2   (08.04.08 14:45)  

http://groups.google.com/group/fido7.ru.delphi.chainik/msg/81212d9cecc96ee4

--
Regards, LVT.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
2-1207721680
Zloi_Funtik
2008-04-09 10:14
2008.05.04
обработчик события для множества сгенерированных мемо полей


15-1205880891
builder
2008-03-19 01:54
2008.05.04
Работа с сокетами в общем


2-1207564254
DelphiN!
2008-04-07 14:30
2008.05.04
Ошибка AV в потоке


15-1206475079
Real
2008-03-25 22:57
2008.05.04
Worms


2-1207414548
Alexey
2008-04-05 20:55
2008.05.04
Не получается SQL-запрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский