unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Timer1: TTimer;
Timer2: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
AdShowing : Boolean;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
AdShowing := True;
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
AdShowing:=false; Timer1.Enabled := false;
end;procedure TForm1.Timer2Timer(Sender: TObject);
begin
AdShowing := True; Timer2.Enabled := false;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if adshowing then
begin
ShowMessage('True');
end else
begin
ShowMessage('False');
end;end;procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := True;
Timer2.Enabled := True;
end;end.Timer1和Timer2都是设置的Interval=1000 Enabled=False
程序打开后,点击Button1,过一秒钟后点击Button2,为何会是‘False’?
在Button1Click中Timer1先执行,Timer2后执行,AdShowing应该是True啊,大家试试
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Timer1: TTimer;
Timer2: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
AdShowing : Boolean;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
AdShowing := True;
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
AdShowing:=false; Timer1.Enabled := false;
end;procedure TForm1.Timer2Timer(Sender: TObject);
begin
AdShowing := True; Timer2.Enabled := false;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if adshowing then
begin
ShowMessage('True');
end else
begin
ShowMessage('False');
end;end;procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := True;
Timer2.Enabled := True;
end;end.Timer1和Timer2都是设置的Interval=1000 Enabled=False
程序打开后,点击Button1,过一秒钟后点击Button2,为何会是‘False’?
在Button1Click中Timer1先执行,Timer2后执行,AdShowing应该是True啊,大家试试
先执行哪个Timer,AdShowing的结果就是相对应的OnTimer中的值
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.HandleMessage;
Timer1.Enabled := True;
Application.HandleMessage;
Timer2.Enabled := True;
end;