for iLen := 0 to sNetDrivers.Count - 1 do
      begin
        for idrv := 0 downto 24 do
这样一个两层循环:
设置断点调试:
第一次执行的时候idrv的值居然是24,然后改成这样:
 for iLen := 0 to sNetDrivers.Count - 1 do
      begin
        for idrv := 24 downto 0 do
第一次后, idrv的值居然是-25晕了。.

解决方案 »

  1.   

    写错了点,应该是这样的:for iLen := 0 to sNetDrivers.Count - 1 do
          begin
            for idrv := 0 to 24 do
    这样一个两层循环:
    设置断点调试:
    第一次执行的时候idrv的值居然是24,然后改成这样:
     for iLen := 0 to sNetDrivers.Count - 1 do
          begin
            for idrv := 24 downto 0 do
    第一次后, idrv的值居然是-25晕了。.
      

  2.   

    正常不是Bug是编译时优化开关打开的原因。
    因为你没有用到循环变量的值,所以它是几对你来说不重要。
    如果引用了循环变量,它的值会是正确的。
    还有如果把编译优化开关关闭,它的值总是会正确的。
      

  3.   

    你能发现delphi的bug,佩服,哈哈,