⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buttontimer.pas

📁 本光盘是《Delphi 7应用教程》一书的配套光盘
💻 PAS
字号:
unit ButtonTimer;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,stdCtrls,Controls, Forms,
  Dialogs,ExtCtrls;
type
  TButtonTimer = class(TButton)
  private
    { Private declarations }
    FTimer:TTimer;
    FInterval:Integer;
    FOnPush: TNotifyEvent;
  protected
    procedure TimerTrigger(Sender:TObject);
    Procedure SetInterval(Value :integer);
    procedure MyMouseDown(Sender: TObject; Button: TMouseButton;
       Shift: TShiftState; X, Y: Integer);
    procedure MyMouseUp(Sender: TObject; Button: TMouseButton;
       Shift: TShiftState; X, Y: Integer);

  public
    { Public declarations }
    Constructor Create(AOwner:TComponent); override;
    Destructor Destroy; override;
  published
    { Published declarations }
    property Interval :Integer read FInterval write SetInterval default 200;
    property OnPush: TNotifyEvent read FOnPush write FOnPush;
  end;
procedure Register;
implementation
procedure Register;
begin
  RegisterComponents('Samples', [TButtonTimer]);
end;
Constructor TButtonTimer.Create(AOwner: TComponent);
 begin
   Inherited Create(AOwner);
   FTimer:=TTimer.Create(self);
   with FTimer do begin
       Ontimer:=TimerTrigger;
       Enabled:=false;
   end;
   FInterval := 200;
   FTimer.Interval := 200;
   OnMouseDown:= MyMouseDown;
   OnMouseUp := MyMouseUp;
  end;

  Destructor TButtonTimer.Destroy;
   begin
       FTimer.free;
       inherited Destroy;
   end;
 procedure TButtonTimer.SetInterval(Value :integer);
  begin
      FInterval:=value;
      FTimer.Interval:=value;
   end;

 procedure TButtonTimer.TimerTrigger(Sender: TObject);
 begin 
   if assigned(FOnPush) then
       FOnPush(self);
 end;
 procedure TButtonTimer.MyMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
   begin
      FTimer.enabled:=true;
   end;
 procedure TButtonTimer.MyMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
   begin
       FTimer.enabled:=False;
   end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -