Ver Mensaje Individual
  #1  
Antiguo 08-06-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Reputación: 13
martini002 Va por buen camino
Crash en programa, o Bucle Infinito?

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:

Código Delphi [-]
Procedure Barajar();

o en su defecto:

Código Delphi [-]
Procedure Repartir();

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
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  VCartas:      Array[1..40]of Integer;           //Vector para el mazo
  VEl:          Array[1..20]of Integer;            //Vector para las cartas de EL
  VYo:          Array[1..20]of Integer;            //Vector para las cartas de YO

implementation
{$R *.dfm}


Procedure InicializarVectores();
Var
   I:Integer;
Begin
//Inicializamos los 3 Vectores en 0
  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.
Responder Con Cita