to: windindance
我重寫了几遍,每次執行都那樣子,幵始以為我的delphi6坏了,我又重裝了一次,而且用kv3000的最新版殺過毒,也沒問題。怎麼辦?
  

解决方案 »

  1.   

    to: qhdsfh
      絕對沒有,因為它不會提示運行錯誤,只是當你查看x21,x22,x23,y21時發現它沒有初值。
      

  2.   

    如果你下面的程序都没有使用 x21,x22,x23,y21,使用默认编译选项时, delphi 将优化掉这几个变量,也就时她们在执行中不存在。
      

  3.   

    全部編碼如下: 但有四個正常,四個沒有值。
    procedure Tpaib.x_h1;
    var
      x11,x12,x13,x14,x21,x22,x23,x24,y11,y12,y13,y14,y21,y22,y23,y24,
      m1,m2,m3,m4,n1,n2,n3,n4,t1,t2,t3,t4,dpa,dpb:integer;
      fl_pa,fl_pb,fl_pa2,fl_pb2:single;
      lib3:string;
      //m1:為長邊上方右排數  m2:為長邊上方左排數   m3:為長邊下方左排數  m4:為長邊下方右排數
      //n1:為寬邊左方上排數  n2:為寬邊左方下排數   n3:為寬邊右方下排數  n4:為寬邊右方上排數
    begin
      dpa:=d_a;
      dpb:=d_b;
      fl_pa:=p_f_a;
      fl_pb:=p_f_b;
      fl_pa2:=p_f_a2;
      fl_pb2:=p_f_b2;
      //-----------------------------------------------------
      x11:=trunc(dpa/fl_pb);
      x12:=trunc(x11/2+0.5);
      x13:=trunc(dpa/fl_pa);
      x14:=trunc(x13/2+0.5);
      y11:=trunc(dpb/fl_pb);
      y12:=trunc(y11/2+0.5);
      y13:=trunc(dpb/fl_pa);
      y14:=trunc(y13/2+0.5);
      if (fl_pa2=0) and (fl_pb2=0) then
        begin
          y21:=0;   //沒有初值
          y22:=0;   //正常
          y23:=0;   //正常
          y24:=0;   //正常
          x21:=0;   //沒有初值
          x22:=0;   //沒有初值 
          x23:=0;   //沒有初值
          x24:=0;   //正常
        end
        else
        begin
          x21:=trunc(dpa/fl_pb2);        
          x22:=trunc(x21/2+0.5);  
          x23:=trunc(dpa/fl_pa2);        
          x24:=trunc(x23/2+0.5);  
          y21:=trunc(dpb/fl_pb2);
          y22:=trunc(y21/2+0.5);
          y23:=trunc(dpb/fl_pa2);
          y24:=trunc(x23/2+0.5);
        end;
    end;
      

  4.   

    to: qkl(康) 
    被优化是什么意思,
    在delphi中如果一段語句運行正確時,會在語句的最前方打一個"藍色小點",當您把鼠標移到上面時,可以看到變在執行時的值,而上面的語句中,是四個有值,而另外四個沒值,這就叫优化嗎?
    如果給一組相同類的變量給同一個值時,是不是要一個一個的賦值?有沒有簡單一點的辦法?
      

  5.   

    点击project->options->compiler项
    把code generation选项卡里的optimization的勾去掉就可以了
    我已经试过了(delphi6 +win98)
      

  6.   

    to:panxiaosen(子木)
    我也是用(delphi6 +win98),但我試過還不行啊!!!救命啦!
      

  7.   

    这里的优化就是 delphi 把已经没有的局部变量取消掉,你的局部变量组在后面的程序中再没有被使用,所以她们完全可以不存在了。
    至于怎样优化这和堆栈、寄存器的使用有关了,重要的是你的程序还能运行出正确结果。
      

  8.   

    把*.dcu等文件删除再试试。
    更怪的偶都见过, 在 then 里面运行几行然后又跳到else里面去执行!
      

  9.   

    你是不是装了哪个有问题的SP1啊?
    根据Borland说,这样的话会出现有些变量不能赋值的现象的.
      

  10.   

    会不会你的系统时间被修改过?
    Build看看