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 23-04-2008
jangel_ramirezm jangel_ramirezm is offline
Miembro
 
Registrado: ago 2007
Ubicación: León Gto. Mex.
Posts: 39
Poder: 0
jangel_ramirezm Va por buen camino
Access Violation Al finalizar una Función

Hola Buenas Tardes Por aqui

Es una Pregunta sencilla solo que ya llevo un buen rato tratando de identificar porque marca ese Acces violation.
No se si a alguno de ustedes les ha pasado. El problema es este que al finalizar una funcion de tipo Boolean marca el Acces violation.
la funcion obtiene datos de una tarjeta pero antes de esto debe seleccionar unos elementos para poder hacerlo.
Código Delphi [-]
function leer(Direccion,Var Dato:variant):Boolean;
begin
     if seleccionaElemto1 then   
          if seleccionaelemento2then
             if selecionaelemento3 then
             begin
                 Dato:=obtenerdatos(Direccion);
                 result:=true;
             end
           else
                showmessage('No se pudo seleccionar el elemento 3');
         else
              showmessage('No se pudo seleccionar el elemento 2');
     else 
          showmessage('No se pudo seleccionar el elemento 1');  
  
end;
cuando mada el result es cuando marca el access violation incluso hay mas linas despues de que obtiene los datos.
quien sabe si les ha pasado a ustedes pero no se que pueda estar mal.
gracias de antemano por sus respuestas.
Responder Con Cita
  #2  
Antiguo 23-04-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Problemente el problema está en la instrucción:

Código Delphi [-]
Dato := obtenerdatos(Direccion);

Tendrías que mirar a ver. Una "violación de acceso" se origina, por ejemplo, cuando se trata de acceder a un objeto que ha sido previamente destruido, o que no llegó a crearse siquiera. Tendrás que depurar la aplicación. Sitúa un "punto de ruptura" en la instrucción que menciono a ver si puedes encontrar por dónde van los tiros.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 23-04-2008
jangel_ramirezm jangel_ramirezm is offline
Miembro
 
Registrado: ago 2007
Ubicación: León Gto. Mex.
Posts: 39
Poder: 0
jangel_ramirezm Va por buen camino
Hola:
Gracias le puse el punto de ruptura en la funcion y la ejecuta bien pero
pues sigue marcando el acces violation incluso si pongo mas instrucciones
después del result.
Código Delphi [-]
function leer(Direccion,Var Dato:variant):Boolean;
begin     
 if seleccionaElemto1 then             
  if seleccionaelemento2then             
    if selecionaelemento3 then            
    begin                 
      Dato:=obtenerdatos(Direccion);                 
      result:=true;                 
      showmessage(dato);                        
    end           
    else                
      showmessage('No se pudo seleccionar el elemento 3');         
  else              
   showmessage('No se pudo seleccionar el elemento 2');     
 else           
  showmessage('No se pudo seleccionar el elemento 1');     
end;

aparece el mensaje mostrando el dato y despues marca el error.
ahí si no se que pueda estar pasando.
saludos

Última edición por jangel_ramirezm fecha: 23-04-2008 a las 02:35:33.
Responder Con Cita
  #4  
Antiguo 23-04-2008
Avatar de rulo_m
rulo_m rulo_m is offline
Miembro
 
Registrado: dic 2007
Posts: 70
Poder: 17
rulo_m Va por buen camino
y el dato si existe? no se, que pasa si es null? no podria ser por ahi?
Responder Con Cita
  #5  
Antiguo 23-04-2008
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
¿Qué tal que nos pones la definición correcta de la función? Porque esto

Código Delphi [-]
function leer(Direccion,Var Dato:variant):Boolean;

ni siquiera compila. Por otra parte, qué son todos esos seleccionaElementoX? ¿Son variables o funciones? Trata reduciendo la función al mínimo (sin condicionales) para probar y tratar de aislar el problema.

// Saludos

Última edición por roman fecha: 23-04-2008 a las 04:17:23.
Responder Con Cita
  #6  
Antiguo 23-04-2008
jangel_ramirezm jangel_ramirezm is offline
Miembro
 
Registrado: ago 2007
Ubicación: León Gto. Mex.
Posts: 39
Poder: 0
jangel_ramirezm Va por buen camino
Hola.
Buenos Dias por aqui
Resulta que hoy cuando intenté probar la función ya corrio sin problemas
creo que es la función que denominé SeleccionarElemento1
la que estaba(o está ) dando los problemas.

Gracias a Todos.
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 Carliviris Varios 5 12-05-2006 19:21:45
Access violation at .... Perio Varios 5 07-02-2006 15:50:36
access violation chilenauta Impresión 15 15-12-2004 19:45:51
Access Violation ..... MADV01 Varios 2 24-03-2004 16:01:33
Access violation Giasl Varios 6 07-05-2003 12:35:51


La franja horaria es GMT +2. Ahora son las 23:35:52.


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