Salud amigos donde quiera que se encuentren
Hoy les traigo un pequeño inconveniente que presenta mi codigo
aun no lo he podido descubrir aunque continuo buscando a ver
donde estara ese nudo...
el problema es que cuando lo ejecuto
y le doy al boton REPARTIR, se queda colgado.
Ademas no cambia la imagen en los procedimientos:
Código Delphi
[-]
procedure TForm2.BotRepartirMouseEnter(Sender: TObject);
Código Delphi
[-]
procedure TForm2.BotRepartirMouseLeave(Sender: TObject);
lo que es completamente extraño, ya que este Form2
es llamado desde un Form1, en el cual el boton efectivamente
funciona con el mismo procedimiento.
ese es un problemita que me paso en un programa anterior,
ahora el problema del bucle o crash creo que esta en el procedimiento:
o en su defecto:
Agradeceria mucho de su parte si lograran conseguir el error
continuare buscando, en caso de encontrarlo, como siempre colocare la respuesta aqui.
Anexo el codigo
Saludos
Best,
Martin
Código Delphi
[-]
unit Versus;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Math, pngimage;
type
TForm2 = class(TForm)
Tablero: TImage;
BotRepartir: TImage;
ImagenCentral: TImage;
procedure BotRepartirClick(Sender: TObject);
procedure BotRepartirMouseEnter(Sender: TObject);
procedure BotRepartirMouseLeave(Sender: TObject);
private
public
end;
var
Form2: TForm2;
VCartas: Array[1..40]of Integer; VEl: Array[1..20]of Integer; VYo: Array[1..20]of Integer;
implementation
{$R *.dfm}
Procedure InicializarVectores();
Var
I:Integer;
Begin
For I:=1 to 40 do
VCartas[i]:=0;
For I:=1 to 20 do
VEl[i]:=0;
VYo[i]:=0;
End;
Procedure Barajar();
Var
i, NumRandom, Aux, j:integer;
Begin
InicializarVectores();
i:=1;
while i<=40 do
begin
NumRandom:=RandomRange(1,40)+1;
Aux:=0;
for j:=1 to 40 do
begin
if VCartas[j]=NumRandom then
begin
Aux:=1;
end;
end;
if Aux=0 then
begin
VCartas[i]:=NumRandom;
end;
if VCartas[i]>0 then
begin
i:=i+1;
end;
end;
End;
Procedure Repartir();
Var
I, Par, Impar:Integer;
Begin
Par:=2;
Impar:=1;
for I:=1 to 20 do
VEl[i]:=VCartas[Impar];
VYo[i]:=VCartas[Par];
Impar:=Impar+2;
Par:=Par+2;
End;
procedure TForm2.BotRepartirMouseEnter(Sender: TObject);
begin
Form2.BotRepartir.Picture.LoadFromFile(Getcurrentdir()+'\Imagenes\Controles\BotRepartirPres.bmp');
end;
procedure TForm2.BotRepartirMouseLeave(Sender: TObject);
begin
Form2.BotRepartir.Picture.LoadFromFile(Getcurrentdir()+'\Imagenes\Controles\BotRepartirNoPres.bmp');
end;
procedure TForm2.BotRepartirClick(Sender: TObject);
Begin
Barajar();
Sleep (1000);
Form2.ImagenCentral.Picture.LoadFromFile(Getcurrentdir()+'\Imagenes\Etiquetas\Barajando.bmp');
Sleep (2000);
Form2.ImagenCentral.Picture.LoadFromFile('');
Repartir();
End;
end.