“我定义了一全局变量,在formcreate中给它赋值12,但是在运行过程中它的值变了成了一个随机数”
这应该是你的问题,看看你对它的操作。for i:=0 to allspeed-1 do       
   stat[i].free;//这是什么?创建这样的可是控件是不用free的;
  createbutton(sender);//自定创建控件过程

解决方案 »

  1.   

    if stat[i] <> nil then  stat[i].free;
      

  2.   

    我定义了一全局变量,在formcreate中给它赋值12,在其它地方我没有在对它做任何处理
    stat[i].free;//就是把原先创建的控件free,再重新创建一批
    你能不能把你的代码贴出来看看 //代码太长了
      

  3.   

    那你用freeandnil()看看,而且要先判断是否存在。
      

  4.   

    那你用freeandnil()看看,而且要先判断是否存在。
      

  5.   

    好好差一下你的程序把,这种错误是人的低级错误,不是delphi的脾气不好。
      

  6.   

    关键是在FREE的时候,没有变量可以用啊
    for i:=0 to allspeed-1 do
    这里的变量怎么都不能用
      

  7.   

    你定义的是stat:array[1..50]
    那么循环就不能从0开始,
    for i:= 1 to  speed -1 do begin
      if Assigned(sate[i]) then freeandnil(stat[i]);
      .........
    end;
      

  8.   

    错了,不好意思啊for i:= 1 to  speed do
      

  9.   

    错了,不好意思啊for i:= 1 to  speed do
      

  10.   

    我倒觉得delphi温柔可人  ^_^
      

  11.   

    问题已经解决,还没人回答我的最后一个问题,我的分只给
    yansea(思宏)了