Ver Mensaje Individual
  #1  
Antiguo 20-05-2015
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Reputación: 14
bulc Va por buen camino
Random no fiable

He incrustado este código en mis aplicaciones. Unas veces funciona y otras no. En este caso tengo 24 TImage + uno que queda fuera a la hora de hacer Shuffle para recolocar las imágenes. En un proyecto con diez imágenes funciona y en otro de 24 no. Me gustaría saber si la clausula Randomize se debe poner en el evento OnCreate o en el procedimiento mismo como aparece aquí.

Código Delphi [-]
procedure TForm1.Button4Click(Sender: TObject); // Intercambiar TImage_s al azar.
Var
   I, A, B : Integer;       Aux : TPoint;
begin
Randomize;
for I :=Low(Img_A) to High(Img_A) Shr 1 do  // 
begin
   A:=Random( High( Img_A ) + 1 );
   B:=Random( High( Img_A ) + 1 );
   Aux:= Point( Img_A[b].Left, Img_A[b].Top);
   Img_A[A].Left:= Img_A[b].Left;
   Img_A[A].Top := Img_A[b].Top;
   Img_A[b].Left:= Aux.X;
   Img_A[b].Top:= Aux.Y;
end;
SetLength(ImgIniRect_A, 0);
for I:= 0 to ComponentCount -1 do
  BEGIN
    if (Components[i] is TImage) and not ((Components[i]).Name = 'Image25') then
    SetLength( ImgIniRect_A, Length(ImgIniRect_A) + 1);
    ImgIniRect_A[High(ImgIniRect_A)].Left:=TImage(Components[i]).Left;
    ImgIniRect_A[High( ImgIniRect_A )].Top:= TImage( Components[i] ).Top;
  END;
end;
Responder Con Cita