Форум: "Основная";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
ВнизКак Запретить сообщение ? Найти похожие ветки
← →
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 вся ветка
Форум: "Основная";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.014 c