Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Обработка cm_mouseleave в ядре   Найти похожие ветки 

 
Mihey ©   (2004-01-24 00:29) [0]

Использую код по этому примеру:

unit Unit1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
procedure FormCreate(Sender: TObject);
private { Private declarations }
FPanel1WndProc: procedure (var Message: TMessage) of object;
public { Public declarations }
procedure Panel1WndProc(var Message: TMessage);
end;

var Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Panel1WndProc(var Message: TMessage);
begin
FPanel1WndProc(Message);
case Message.Msg of
CM_MOUSELEAVE: begin
if Message.LParam = integer(Button1) then
ShowMessage("By-by, mouse");
end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FPanel1WndProc:=Panel1.WindowProc; Panel1.WindowProc:=Panel1WndProc;
end;

end.

В результате при выходы мыши с контрола получаю кучу окошек. Наверное, сообщение надо уничтожать. Что делать?


 
kull ©   (2004-01-24 01:40) [1]

Обязательно сообщение выводить? Или вместо него должен быть другой код, а ShowMessage - для примера?


 
Mihey ©   (2004-01-24 23:24) [2]

В принципе, необязательно. Я хотел вставить довольно медленный код (перерисовка контрола), но как бы можно и обойтись. Но всё же, можно ли что-нибудь сделать?


 
Mihey ©   (2004-01-26 00:26) [3]

Алё! Up!


 
Сергей Чурсин ©   (2004-01-26 02:17) [4]

Для чего вообще городить оконную процедуру...
http://deeco.h1.ru/cgi-bin/file8.php?text=2

Обработка же, по-моему, должна выглядеть так (для класса) :

case Message.Msg of
WM_LBUTTONDOWN: begin
XM:=Message.LParamLo;
YM:=Message.LParamHi;
////////////..
end;

WM_LBUTTONDBLCLK: begin
XM:=Message.LParamLo;
YM:=Message.LParamHi;
////////////..
end;

// И в конце!
else inherited WndProc(Message);

end;



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

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
1-16264
MakNik
2004-01-26 09:58
2004.02.06
TEDIT


3-16182
Максим
2004-01-13 08:22
2004.02.06
Создание базы


1-16441
Денис Евлентьев
2004-01-28 10:11
2004.02.06
Проблема с отображением поля типа dtGraphic в отчете Rave Report


7-16771
Pipl
2003-11-16 00:31
2004.02.06
Как заблокировать машину?


14-16649
pasha_golub
2004-01-13 12:04
2004.02.06
IT-бизнес