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); 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;