Ver Mensaje Individual
  #1  
Antiguo 16-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Reputación: 15
bothy Va por buen camino
Error Access violation at address 00404CE8 in module

yo tambien tengo algo parecido

tengo un VclFormPrincipal con 1 button que este button al dar click te desplega un form,
que este form a su vez tiene 3 button cada button te desplega a a un form diferente a si que tengo otros 3 forms.


Código Delphi [-]
procedure Tfromprincipal.SpeedButton1Click(Sender: TObject);
begin
fromninos.ShowModal ;
end;
procedure Tfromprincipal.SpeedButton1Click(Sender: TObject);
begin
mediaplayer1.Stop ;
fromninos.ShowModal ;

end;

procedure Tfromprincipal.SpeedButton4Click(Sender: TObject);
begin
if Application.MessageBox( '¿Desea salir?', 'Catalogo Principal',
  MB_ICONQUESTION OR MB_YESNO ) = ID_YES then
close;
end;


end.



"este vclformprincipal te despliega otro form donde tengo tres button"




Código Delphi [-]
procedure Tfromninos.SpeedButton1Click(Sender: TObject);
begin

formuno.ShowModal ;
close;
end;

procedure Tfromninos.SpeedButton2Click(Sender: TObject);
begin
form2.ShowModal ;
close;
end;

procedure Tfromninos.SpeedButton3Click(Sender: TObject);
begin
form3.ShowModal ;
close;
end;

end.

El formuno y dos tengo esto
Código Delphi [-]
var   vector:array[1..4]of integer;
  fromcinco6: Tfromcinco6;

implementation

uses principal;

{$R *.dfm}





procedure Tfromcinco6.FormCreate(Sender: TObject);
var i:integer;
begin
Randomize;
 for i:=0 to 3 do
  begin
    vector[i] := RandomRange(1,9);
    label2.Caption :=inttostr (vector[1]);
    label3.Caption :=inttostr (vector[2]);
  end;
end;
procedure Tfromcinco6.Image2Click(Sender: TObject);
begin
      if Application.MessageBox( '¿Desea ir Atras?', 'Catalogo Niños',
          MB_ICONQUESTION OR MB_YESNO ) = ID_YES then
      close;
end;
procedure Tfromcinco6.SpeedButton1Click(Sender: TObject);
var a:integer;
begin
  a:=strtoint(label2.Caption )+strtoint(label3.Caption );
      if edit1.Text =inttostr(a) then
      begin
         label4.Caption :='Muy Bien' ;
         SpeedButton1.Enabled :=false ;
         label6.Caption :='';
      end
      else
         label6.Caption := '! Vuelbe a Intentarlo ¡ ';
         edit1.SetFocus ;
         edit1.Clear ;
end;
procedure Tfromcinco6.SpeedButton2Click(Sender: TObject);
var i:integer;
begin
  label4.Caption :='';
  label6.Caption :='';
  SpeedButton1.Enabled :=true ;
Randomize;
 for i:=0 to 3 do
   begin
    vector[i] := RandomRange(1,9);
    label2.Caption :=inttostr (vector[1]);
    label3.Caption :=inttostr (vector[2]);
   end;

end;
end.
en el form3 tengo
Código Delphi [-]
var  vector:array[1..16]of integer;
  fromninos7: Tfromninos7;

implementation

{$R *.dfm}

procedure Tfromninos7.FormCreate(Sender: TObject);
var i:integer;
begin
Randomize;
  for i:=0 to 15 do
     begin
       vector[i] := RandomRange(10,99);
       label1.Caption :=inttostr (vector[1]);
       label2.Caption :=inttostr (vector[2]);
       label3.Caption :=inttostr (vector[3]);
       label4.Caption :=inttostr (vector[4]);
       label5.Caption :=inttostr (vector[5]);
       label6.Caption :=inttostr (vector[6]);
       label7.Caption :=inttostr (vector[7]);
       label8.Caption :=inttostr (vector[8]);
       label9.Caption :=inttostr (vector[9]);
       label10.Caption :=inttostr (vector[10]);
  end;
end;
procedure Tfromninos7.Image2Click(Sender: TObject);
begin
   if Application.MessageBox( '¿Desea ir Atras?', 'Catalogo Niños',
   MB_ICONQUESTION OR MB_YESNO ) = ID_YES then
 close;
end;
procedure Tfromninos7.SpeedButton1Click(Sender: TObject);
var a,b,c,d,e,g,h,j,k,l,p,calf:integer;
begin
  SpeedButton1.Enabled :=false;
  a:=strtoint(label1.Caption )+strtoint(label2.Caption );
  b:=strtoint(label3.Caption )+strtoint(label4.Caption );
  c:=strtoint(label5.Caption )+strtoint(label6.Caption );
  d:=strtoint(label7.Caption )+strtoint(label8.Caption );
  e:=strtoint(label9.Caption )+strtoint(label10.Caption );
  if edit1.Text =inttostr(a) then
    begin
      label16.Caption :='Bien' ;
      g:=1;
    end  else
     label16.Caption := 'Mal ';

  if edit2.Text =inttostr(b) then
  begin
      label17.Caption :='Bien' ;
      h:=1;
  end  else
     label17.Caption := 'Mal ';
  if edit3.Text =inttostr(c) then
  begin
      label18.Caption :='Bien' ;
      j:=1;
  end  else
     label18.Caption := 'Mal ';

  if edit4.Text =inttostr(d) then
  begin
      label19.Caption :='Bien' ;
      k:=1;
  end  else
     label19.Caption := 'Mal ';


  if edit5.Text =inttostr(e) then
  begin
      label20.Caption :='Bien' ;
      l:=1;
  end  else
     label20.Caption := 'Mal ';
             p:=g+h+j+k+l;
        label24.Caption :=inttostr(p);
        calf:=p*2;
        label27.Caption :=inttostr(calf);
        label25.Caption :=inttostr(5-p);
        edit1.SetFocus ;
end;
procedure Tfromninos7.SpeedButton2Click(Sender: TObject);
var i,l:integer;
begin
  {for l:= 0 to controlCount - 1 do
               begin
                 if(controls[l] is tedit) then
                  tedit(controls[l]).Text :='';
               end;}
SpeedButton1.Enabled :=true ;
Randomize;
 for i:=0 to 15 do
  begin
   vector[i] := RandomRange(10,99);
   label1.Caption :=inttostr (vector[1]);
    label2.Caption :=inttostr (vector[2]);
   label3.Caption :=inttostr (vector[3]);
    label4.Caption :=inttostr (vector[4]);
   label5.Caption :=inttostr (vector[5]);
    label6.Caption :=inttostr (vector[6]);
   label7.Caption :=inttostr (vector[7]);
    label8.Caption :=inttostr (vector[8]);
    label9.Caption :=inttostr (vector[9]);
    label10.Caption :=inttostr (vector[10]);
  end;
   
end;


end.


Entoces todo parese estar bien , pero cuando lo ejecuto y doy click en el button del vclprincipal me despliega el otro form , en ese form le doy click al button1 y me despliega otro form cierro ese form que me despliega y buelvo a dar click en el button2 y me despliega otro form lo cierro y al aplastar otra ves el button1 me sale este error


"project principal2.exe raised exception class EAccessViolation with message 'Access violation
at address 00404CE8 in module 'principal2.exe '.read of address 00000042'".


Este error no me sale si nomas abro y cierro los forms . me sale cuando abro un form y empiezo a utilizar sus funciones. sus funciones son sumas y restas y funciona exelente, pero cuando lo cierro y quiero abrir otro form me sale el error..

Noce si me puedas entender por la esplicacion que te doy . pero se que me puedes ayudar
Responder Con Cita