我定义了一个全局变量C:integer;在第一个事件中定义:
procedure Tckdform.Button6Click(Sender: TObject);
begin
c:=strtoint(edit1.text);
end;
在第二个事件中写:
procedure Tckdform.Button7Click(Sender: TObject);
begin
d:=a+b+c;
c:=strtoint(edit1.text);
end;
但我发现有个问题,就是执行d:=a+b+c的时候,他实际只执行d:=a+b,没有加C,这是怎么回事?

解决方案 »

  1.   

    你这样写的话,需要先Button6Click,要不Delphi会把C的初值赋为0,所以就好像没有加过一样
      

  2.   

    这样会完整些:
    procedure Tckdform.formcreate(sender:tobject);
    begin
    button7.enabled:=false;  //让用户必须先点button6
    end;procedure Tckdform.Button6Click(Sender: TObject);
    begin
    button7.enabled:=true;
    c:=strtoint(edit1.text);
    end;
    在第二个事件中写:
    procedure Tckdform.Button7Click(Sender: TObject);
    begin
    d:=a+b+c;
    c:=strtoint(edit1.text);
    button7.enabled:=false;  
    end;
      

  3.   

    我觉得如果a,b,c,d都是定义的全局Integer ,如上情况不可能var
      Form1: TForm1;
      a,d,c,b : Integer ;procedure TForm1.Button1Click(Sender: TObject);
    begin
      c := StrToInt('1234') ;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      d := a + b + c ;
      ShowMessage(IntToStr(d)) ;  //1234  
    end;
      

  4.   

    对:)procedure TForm1.FormCreate(Sender: TObject);
    begin
      Button2.Enabled := False ;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      c := StrToInt('1234') ;
      Button2.Enabled := True ;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      d := a + b + c ;
      ShowMessage(IntToStr(d)) ;  //1234  
    end;
      

  5.   

    那我现在让C:=strtoint(edit1.text)放在FORMCREATR事件里,为什么会出错:
    'edit5'is not a valid integer value
    怎么回事?
      

  6.   

    放在FormShow里面就好了。
    因为在Create时Edit1里面的字符串还不是整型数字的字符串呢。
      

  7.   

    放在FormShow是不是就是当FORM显示的时候C的值就不会变了,这可不行。
      

  8.   

    为什么老是出现'edit5'is not a valid integer value这样的错误?