Вниз
Скачать: CL | DM;

Как Запретить сообщение ?   Найти похожие ветки 

← →
Nikk   (2005-11-01 15:49) [0]

Нужно заблокировать событие клика мыши, что бы оно не дошло до компонента. Как можно это сделать?
Исходников компонента нету, по этому такая проблема.


← →
BFG9k ©   (2005-11-01 16:06) [1]

Обработай сообщение до того, как оно придет в компонент.


var M:TMessage;

...

M.Result:=0;



← →
Leonid Troyanovsky ©   (2005-11-01 16:06) [2]


> Nikk   (01.11.05 15:49)


> Нужно заблокировать событие клика мыши, что бы оно не дошло
> до компонента. Как можно это сделать?

TControl - procedure Click; override

> Исходников компонента нету, по этому такая проблема.

Безразлично.

--
Regards, LVT.


← →
wicked ©   (2005-11-01 21:19) [3]

имхо, лучше использовать св-во WindowProc.... подробности - в справке....


← →
evvcom ©   (2005-11-02 09:30) [4]

Возможно, достаточно будет из ControlState исключить csClickEvents


← →
Lexer ©   (2005-11-02 11:54) [5]

Поддерживаю [3], переопределяешь WndProc и игнорируешь ненужные сообщения

FLastButtonWndProc: TWndMethod;
procedure ButtonWndProc(var Message: TMessage);

FLastButtonWndProc := Button1.WindowProc;  
Button1.WindowProc := ButtonWndProc;

procedure TForm1.ButtonWndProc(var Message: TMessage);
begin
 if not(Message.Msg = WM_LBUTTONDOWN or Message.Msg = WM_RBUTTONDOWN) then  FLastButtonWndProc(Message);
end;


← →
umbra ©   (2005-11-02 12:49) [6]

можно вот так


unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   ApplicationEvents1: TApplicationEvents;
   procedure ApplicationEvents1Message(var Msg: tagMSG;
     var Handled: Boolean);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
   if msg.hwnd = Button1.Handle then
     if (Msg.message = WM_LBUTTONDOWN) or (Msg.message = WM_LBUTTONUP)
         or (msg.message = WM_LBUTTONDBLCLK) then
     begin
       Handled := True;
     end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage("!!!");
end;

end.



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

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



Память: 0.46 MB
Время: 0.024 c
1-1130923212
СергейА
2005-11-02 12:20
2005.11.27
Как поменять кодовую страницу в текстовом файле на 866? Спасибо!


3-1129268518
Alex--
2005-10-14 09:41
2005.11.27
Проблема переноса данных из одной БД в другую


1-1130826536
Рафик
2005-11-01 09:28
2005.11.27
Как в DBChart провести горизонтальную линию по верхнему и нижнему


14-1131051081
Profi
2005-11-03 23:51
2005.11.27
Почему программисты на С++ ценятся больше чем на Delphi?


3-1129360635
Иванов__
2005-10-15 11:17
2005.11.27
Ош. "Could not convert variant of type (NULL) into type (String)"




   Наверх