Главная страница
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.018 c
1-16351
AlexLine
2004-01-24 13:52
2004.02.06
Как вызвать стандартный калькулятор Windows


1-16389
Ренат
2004-01-23 16:38
2004.02.06
Динамическое создание TQRDbText в отчете


1-16348
AlexLine
2004-01-24 13:58
2004.02.06
SpeedButton


4-16815
Segreen
2003-11-27 18:16
2004.02.06
Контрол с фокусом...


1-16320
kaginava
2004-01-25 10:02
2004.02.06
Сервис