Ver Mensaje Individual
  #3  
Antiguo 17-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Bueno no pones el código completo, pero puedo intentar adivinar lo que pasa. Si dentro del bucle no utilizas el valor de la variable i la optimización del compilador hace que la variable i disminuya en vez de incrementarse ya que esta esta manera es mas eficiente. Es decir, si tenemos esto:

Código Delphi [-]
var
  i: integer;
begin
  for i:= 0 to 3 do
  begin
    Windows.Beep(200,100);
  end;
end;

Y ejecutamos nuestro programa paso a paso veremos que i toma el valor 4, 3, 2, 1 debido a la optimización del compilador. En principio el pitido se sigo oyendo 4 veces así que lo que haga el compilador no nos importa. Sin embargo si tenemos esto otro:

Código Delphi [-]
var
  i: integer;
begin
  for i:= 0 to 3 do
  begin
    Windows.Beep(200*i,100);
  end;
end;

Y lo vuelves a ejecutar paso a paso, veras que ahora la i toma los valores correctos, 0, 1, 2, 3.
Responder Con Cita