zoukankan      html  css  js  c++  java
  • 怎样使单击事件变为双击事件(50分)

    即单击时并不产生单击事件,而双击时产生单击事件,这样不能在
    双击事件里调用单击事件,因单击事件优先于双击事件。


    拦截单击的消息,改发双击的消息


    能否举个例子!以DBgridclick()为例


    TForm1 = class(TForm)
    procedure FormClick(Sender: TObject);
    procedure FormDblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    Flag: Boolean;
    end;
    
    var
    Form1: TForm1;
    implementation
    {$R *.DFM}
    { TForm1 }
    procedure TForm1.FormClick(Sender: TObject);
    begin
    if Flag then
    begin
    ShowMessage ('You click me!');
    Flag := False;
    end;
    end;
    
    procedure TForm1.FormDblClick(Sender: TObject);
    begin
    Flag := True;
    FormClick(Self);
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Flag := False;
    end;
    拦截消息
    unit Unit1;
    interface
    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,MaxDirFile;
    type
    TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    private
    { Private declarations }
    protected
    procedure WL(var Message:TWMLBUTTONDOWN);message WM_LBUTTONDOWN;
    procedure WDL(var Message:TWMLBUTTONDBLCLK);message WM_LBUTTONDBLCLK;
    public
    { Public declarations }
    end;
    
    var
    Form1: TForm1;
    implementation
    {$R *.DFM}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    MaxDirFile.GetAppDir
    end;
    
    procedure TForm1.WDL(var Message: TWMLBUTTONDBLCLK);
    begin
    Showmessage('ddd');
    Message.Result:=0;
    end;
    
    procedure TForm1.WL(var Message: TWMLBUTTONDOWN);
    Var
    Pos:Integer;
    Key:integer;
    begin
    Pos:=(Message.YPos shl 16)+Message.XPos;
    Key:=Message.Keys;
    SendMessage(handle,WM_LBUTTONDBLCLK,Key,Pos);
    Message.Result:=-1;
    end;
    
    end.

    呵呵,还有一招……

    比如按钮的单击事件,你可以设置一个布尔量 B:=false;
    每次 click 时先判断 B=true 再执行你的事件,然后改变 B一次。
    这样一来就用两个单击代替了双击,如果效果不好就结合时间……


    不如是整型,每CLICK一下加一,加到2时用DBCLICK,然后清0,。。。

  • 相关阅读:
    猪猪的机器学习笔记(八)聚类
    猪猪的机器学习笔记(七)最大熵模型
    猪猪的机器学习笔记(九)推荐系统
    标签button:点击button按钮时,出现了页面自动刷新的情况
    SQL案例
    SQL学习记录:函数(二)
    SQL学习记录:定义(一)
    C# 后台报错输出到日志
    DateTime 时间类型总结(前端)
    笛卡尔积的使用
  • 原文地址:https://www.cnblogs.com/jijm123/p/10226894.html
Copyright © 2011-2022 走看看