Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
1-16268
Анонимщик
2004-01-22 16:37
2004.02.06
Деструктор в конструкторе


1-16509
TurburatoR
2004-01-27 11:50
2004.02.06
Как изменить порядок переключения по элементам формы по ТАБ


3-16189
www85
2004-01-13 09:09
2004.02.06
Постоянно вылетает ошибка!


1-16264
MakNik
2004-01-26 09:58
2004.02.06
TEDIT


8-16526
Chlavik
2003-09-30 19:50
2004.02.06
Чёрное:=CoolFunc(Белое); // у кого есть алгоритм?




   Наверх