建立个btn 点一次加1
我用的for to do
var
i,j:integer;
begin
i:=1
for j:= 1 to 10 do
i:=j+1;
show message(inttostr(i));
end.
我希望是点一次btn加1  但是他直接显示的总和56  应该如何写另外一个问题
var
i:integer;
begin
 if i > 1 then
 begin
 showmessage('ok');
 Timer1.Enabled:=False;
 end;
else
 showmessage('no');
 Timer1.Enabled:=True;
end.这里我想执行到显示ok的时候 时间 失效  但是程序还是会一直执行 一直弹弹窗 哪里错了! 如何修改

解决方案 »

  1.   

    var
       i : integer;
    //建立个btn 点一次加1 
    i := 1;
    begin 
      i:=1 
      showmessage(inttostr(i)); 
      inc(i)
    end. 
     //我希望是点一次btn加1  但是他直接显示的总和56  应该如何写 var 
    i:integer; 
    begin  
      if i > 1 then  
      begin 
        showmessage('ok');  
        Timer1.Enabled:=False; 
     end else 
     begin
       showmessage('no'); 
       Timer1.Enabled:=True; 
     end;
    end. 把這兩段代碼配合起來用,就行了。  i  申明為全局變量
      

  2.   


    var
       i : integer;i := 1;//建立个btn 点一次加1 
    begin 
      showmessage(inttostr(i)); 
      inc(i)
    end. 
     //我希望是点一次btn加1  但是他直接显示的总和56  应该如何写 
    begin  
      if i > 1 then  
      begin 
        showmessage('ok');  
        Timer1.Enabled:=False; 
     end else 
     begin
       showmessage('no'); 
       Timer1.Enabled:=True; 
     end;
    end. 
      

  3.   

    1,VAR 定义到整个unit的私有变量,不要放在Button1Click事件中定义,否则每次点都会重新初始化
    2,没看到全部代码,不过我估计你的弹窗是在Timer事件里的,调试的时候可能会导致Timer1事件被触发
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}var
      Count: Integer;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Inc(Count);
      Caption := IntToStr(Count);
    end;end.
      

  5.   

    我用的for to do 
    var 
    i,j:integer; 
    begin 
    i:=1 
    for j:= 1 to 10 do begin
    i:=j+1; 
    show message(inttostr(i)); 
    end;
    end. 
    我希望是点一次btn加1  但是他直接显示的总和56  应该如何写 另外一个问题 
    var 
    i:integer; 
    begin 
    if i > 1 then 
    begin 
    Timer1.Enabled:=False; 
    showmessage('ok'); end; 
    else 
    showmessage('no'); 
    Timer1.Enabled:=True; 
    end
      

  6.   


    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;
      i: Integer = 0;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      showmessage(inttostr(i));
      inc(i);
      Timer1.Enabled := True;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Timer1.Enabled:=False;
      if i > 1 then
        showmessage('ok')
      else
       showmessage('no');
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Enabled := False;
    end;end.