Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 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
  #2  
Antiguo 16-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No entiendo y no creo que ayude mucho tampoco pero por lo que comentas y trato de entender el problema se da al repetir el uso de un botón el que contiene una operaciones, creo.
Me da la impresión de que podría haber alguna variable o dato que no se regenera o toda el valor inicial y al re-llamarlo el valor no esta correcto.
Como dije, no se, solo trato de abrir posibilidades.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 16-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
caral muchas gracias..

creo que me equivoque en esto

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.
deveria ser asi
Código Delphi [-]
procedure Tfromprincipal.SpeedButton1Click(Sender: TObject);
begin
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.
Responder Con Cita
  #4  
Antiguo 16-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Que poco observador soy.
Efectivamente duplicabas el procedimiento:
Código Delphi [-]
procedure Tfromprincipal.SpeedButton1Click(Sender: TObject);
Que bueno que lo solucionaras y lo mejor, solo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 16-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Hola de nuevo caral.

no creo que solucione el error yo solo porque noce de que se trata el error que me sale
"project principal2.exe raised exception class EAccessViolation with message 'Access violation
at address 00404CE8 in module 'principal2.exe '.read of address 00000042'" .

poreso les pido porfavor su ayuda .
Responder Con Cita
  #6  
Antiguo 16-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Ah!, pensé que lo habías solucionado.
Es un error de compilación (creo), normalmente sale cuando esta fuera de lugar, no coincide o cosas asi.
Es muy dificil ver un error de estos sin tener el codigo y compilarlo.
Has probado depurar con F7 o F8 ?
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 16-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Hola de nuevo

he compilado con F7 .
paso por paso , lo que ise fue di click en un button1 y utilice las funciones de ese form que es sumar luego cerre el form y di click en el button2 y utilice las funciones de ese form que es sumar luego cerre y le di click al button1
de nuevo y me salio el error

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

y el compilador me lo marco en
Código Delphi [-]
procedure Tfromninos.SpeedButton1Click(Sender: TObject);
begin

fromcinco6.ShowModal ;
close;
end;

procedure Tfromninos.SpeedButton2Click(Sender: TObject);
begin
// AQUI EL ERROR
fromcinco6.ShowModal ;
close;
end;

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

yo pienso que es algo como lo que me dijiste que no se restablece un form o una variable..
Responder Con Cita
  #8  
Antiguo 16-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Prueba esto:
Código Delphi [-]
procedure Tfromninos.SpeedButton1Click(Sender: TObject);
begin
fromcinco6.ShowModal ;
end;

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

procedure Tfromninos.SpeedButton3Click(Sender: TObject);
begin
fromninos7.ShowModal ;
end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 16-03-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 15
BrunoBsso Va por buen camino
Caral, eso mismo le dije yo en un mensaje privado dónde me preguntó lo mismo de este hilo.
Me parece que no le sirvió porque no me respondió y encima armó este hilo.
Responder Con Cita
  #10  
Antiguo 16-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Aveces nos ahogamos, no sabemos por que no salen las cosas y si encima somos jóvenes y con poca experiencia en programación, nos desesperamos, lo digo por experiencia (por supuesto no por lo de joven).
Siempre trato de ponerme en los zapatos de los otros y tratar de ver el problema como ellos lo ven, aveces es muy complicado.
Espero que podamos sacar adelante a bothy, se que podrá con un poco de ayuda y mucha paciencia.
Me alegro que estés pendiente de este tema, se que poco a poco saldrá.
Paciencia y una caña.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 16-03-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y por qué no comprimes el proyecto (sin ejecutable) y lo dejas para que lo probemos?
Responder Con Cita
  #12  
Antiguo 16-03-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 15
BrunoBsso Va por buen camino
Casimiro, te digo algo similiar a lo que le dije a Caral.
Le dije prácticamente lo mismo que acabás de decir vos, pero tampoco me mostró el proyecto ni me dió mas código para verificar.
No sé qué pasará, pero no responde a las ayudas.
Responder Con Cita
  #13  
Antiguo 16-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Siempre queda la alternativa del chock eléctrico
Saludos
PD: Por internet seria una trasferencia electronica de Bytes......
__________________
Siempre Novato
Responder Con Cita
  #14  
Antiguo 17-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
soy estudiante de univercidad estoy en 4 semestre soy muy novato en delphi
pero tengo ganas de aprender, a veces no contexto a las ayudas porque tengo que ir a clases. orita vere como subo el programa para poder mandarcelos.
Responder Con Cita
  #15  
Antiguo 17-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
bothy; Te comento que no puedes recibir mensajes privados, tienes demasiados en tu buzón.
Deberías borrar algunos si quieres recibir respuestas.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #16  
Antiguo 17-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Hola
caral
ya he descargados mis mensages y ya puedo resivir mensages,
otra pregunta caral puedo subir mi programa al directorio del clubdelphi
para que lo revisen y me puedan ayudar mejor...
Responder Con Cita
  #17  
Antiguo 17-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El FTP del club no está pensado para este fin. Intenta poner tu código en un zip y adjúntalo a un mensaje. Si fuera demasiado grande para eso, prueba a subirlo a un servicio de archivos compartidos como RapidShare.

// Saludos
Responder Con Cita
  #18  
Antiguo 17-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Aqui esta el link del programa para Que lo descargen y lo revisen


http://rapidshare.com/files/36439657...i__os.rar.html
Responder Con Cita
  #19  
Antiguo 17-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

He visto tu programa sin mucho detalle, y, aun cuando no he podido reproducir el problema, sí observo dos puntos que pueden causar una violación de acceso.

En los formularios fromcinco6 y fromninos7 tienes dos variables:

Código Delphi [-]
var vector:array[1..4]of integer;

// y

var vector:array[1..16]of integer;

respectivamente. Ambos arreglos comienzan en 1. Y, sin embargo, en el OnCreate tienes ciclos como estos:

Código Delphi [-]
for i:=0 to 3 do

...


for i:=0 to 15 do

Así que, en ambos casos, intentas acceder al elemento vector[0] que no existe, y puede ser lo que causa el problema.

Para un futuro recuerda que, si bien un Access Violation es un error muy poco específico, por lo general quiere decir que estás intentando acceder a un área de memoria a la cual no tienes permiso de hacerlo y eso sucede, mayoritariamente por tres razones:

1. Intentas acceder a un objeto que no ha sido creado.
2. Intentas usar un apuntador al que no has asignado memoria.
3. Intentas acceder a un elemento de un arreglo fuera de rango (más allá de los índices definidos).

De manera que, cuando sucede un error así, es bueno revisar estos tres puntos.

También, es importante tratar de localizar exactamente la línea en que se produce la excepción.

Por último; cuando desees que te ayuden, intenta facilitar las cosas para que esto suceda. Todos tenemos ocupaciones, pero así como hay varios aquí dispuestos a dar parte de su tiempo en ayudarte, lo adecuado es que tú pongas parte del tuyo y no dejes de atender el hilo.

Otra cosa para facilitar las cosas es tratar de simplificar. En tu proyecto, por ejemplo, las imágenes y música son innecesarias. Si las quitas reduces el zip a 18Kb, que caben perfectamente en un archivo adjunto a un mensaje.

// Saludos
Responder Con Cita
  #20  
Antiguo 17-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Hola roman Tomare en cuenta todo lo que me dises..
y muchas gracias por tomarte ese tiempo en ayudarme. se que soy novato todavia en en esto de la programacion ya que tengo 2 años estudiando ingenieria de software y lo bueno que estoy seguro que me gusta mucho la programacion sienpre entro al foro para aprender algo nuevo.

y gracias por la observacion que me diste de mi programa ya resolvi el error y ya me truena el programa, estabas en lo correcto con el uso de memoria

Código Delphi [-]
var vector:array[1..4]of integer;

// y

var vector:array[1..16]of integer;
y
Código Delphi [-]
for i:=0 to 3 do

...


for i:=0 to 15 do

e resuelto el error ...

tambien Quisiera saver si han subido mas tutoriales como el de caral de la BD del banco con access y delphi ..
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Access violation at address ... in module 'RLINK32.DLL' FelipeDiaz Varios 18 26-03-2016 21:39:00
Access violation at address 0CEB291C in module 'BORdbk70.dll'. Oxa78 Varios 3 13-03-2007 18:50:56
Problema con Quick report 'Access Violation at address 00575B9B in module' danielcordovahe Varios 3 13-05-2005 00:51:08
error 'Access violation at address 0053CF79 in module project1' Renees Varios 3 15-03-2005 17:17:37
Access violation at address ... Franklim API de Windows 2 03-12-2004 00:09:53


La franja horaria es GMT +2. Ahora son las 16:54:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi