我现在有一个按钮,我想点击一次后就把它禁掉,然后1小时后在让它起作用!!
请高手指点一下,小弟十分感激!!!!
最好把代码写具体点,我是刚从VB转学Delphi的

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Timer1: TTimer;
        procedure Button1Click(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      button1.Enabled:=false;
      self.Timer1.Enabled:=true;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      button1.Enabled:=true;
      self.Timer1.Enabled:=false;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    self.Timer1.Interval:=1000*60*60;
    self.Timer1.Enabled:=false;
    end;end.
      

  2.   

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Button2.Enabled := True;
      Timer1.Enabled := False;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      Timer1.Enabled := True;
      Button2.Enabled := False;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Interval := 3600000;
      Timer1.Enabled := Flase;
    end;
      

  3.   

    TO 楼上: 那象下面这样, 会不会被灰色按钮克星解掉.(我没用过灰色按钮克星, 所以不知道)procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Button1.Enabled := True;
      Button1.OnClick := Button1Click;
      Timer1.Enabled := False;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Timer1.Enabled := True;
      Button1.OnClick := nil;
      Button1.Enabled := False;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Interval := 3600000;
      Timer1.Enabled := False;
    end;
      

  4.   

    lihuasoft的方法比较好。其实操作的方法和vb中差不多,都是用timer控件的enable属性就可以了,很简单。
      

  5.   

    To lihuasoft(两颗星)
    我刚刚测试了,
    灰色按钮克星 确实可以使得 Disable的按钮变为 Enable (不论是VB的程序还是Delphi的,估计VC的都可以,因为解决方法可能来自Windows API)
    但是只要流程的指向发生变化(Button1.OnClick := nil;原来指向处理函数的入口,现在改为空),
    这种变化是没有办法恢复的,因此也没有办法有针对性的解除。
      

  6.   

    哦... 谢谢一周一次是把变灰的按钮不灰了对吧,但单击事件无反应。把变灰的变成不灰的,应该简单吧,是不是用API函数EnableWindow就可以啊,我没试过,有时间试一下。
      

  7.   

    private
    procedure EnableClick(Sender: TObject);
    procedure DisableClick(Sender: TObject);procedure TForm1.Button1Click(Sender: TObject);
    begin
    button1.Enabled:=false;
    self.Timer1.Enabled:=true;
    button1.onclick:=DisableClick;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    button1.Enabled:=true;
    self.Timer1.Enabled:=false;
    button1.onclick:=EnableClick;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    self.Timer1.Interval:=1000*60*60;
    self.Timer1.Enabled:=false;
    button1.onclick:=EnableClick;
    end;
    ................