如何触发鼠标双击事件时不让触发单击事件(50分)

  • 主题发起人 主题发起人 laokui
  • 开始时间 开始时间
L

laokui

Unregistered / Unconfirmed
GUEST, unregistred user!
各位:
我在鼠标的单击和双击事件中要做不同的事情,如何在双击时不触发单击事件!
 
在onCreate事件中写:
self.onMouse.. := nil;
 
按joioy说的试过了,不行,
self.OnMouseDown := nil;
Self.OnMouseUp := nil;
self.OnMouseMove := nil;
 
那只有延迟OnClick的响应时间了,用时钟做,
把原来在OnClick中做的放到时钟里来。

var
Form1: TForm1;
clicked,dbclicked:bool;


procedure TForm1.FormClick(Sender: TObject);
begin
clicked:=true;
dbclicked:=false;
timer1.Enabled:=true;
end;

procedure TForm1.FormDblClick(Sender: TObject);
begin
clicked:=false;
dbclicked:=true;
if dbclicked then
edit2.Text:='dbclick';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
clicked:=false;
dbclicked:=false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
timer1.Enabled:=false;
if clicked then
edit1.Text:='click';
end;
 
不可能的 因为双击就是两下紧跟着的单击
WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK, and WM_LBUTTONUP
 

Similar threads

后退
顶部