Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2003
seduerey seduerey is offline
Miembro
 
Registrado: jun 2003
Posts: 60
Poder: 21
seduerey Va por buen camino
novato en cuanto a los objetos delphi

tengo un problema cuando realizo los create de una clase arbol que estoy realizando....

La clase es esta :

TTreeMap = class (TObject) {clase de arbol AVL}
private
campoordenacion : String;
objeto : TObject;
bal : Integer;
HijoIzq : TTreeMap;
HijoDer : TTreeMap;
public
Constructor CreateTTRee(ord:String;Obj:TObject);
.... y el resto de los mñetodos


Pues bien, cuando llego a ejecutar el constructor me da un error y al depurarlo no consigo llegar a los valores es un "Valor inaccesible"

Constructor TTreeMap.CreateTTRee(ord:String;Obj:TObject);
begin
inherited Create;
self.campoordenacion := ord;
self.objeto := Obj;
self.HijoIzq := NIL;
self.HijoDer := NIL;
end;


¿¿Pueden decirme en que estoy fallando?? hasta ahora me habia apoyado en BBDD, por lo que no lo he necesitado hasta ahora
Responder Con Cita
  #2  
Antiguo 09-11-2003
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
Probé el código que pones y no causa ningún error. Quizá el problema esté con los parámetros que le pasas al constructor ya que uno de ellos es un objeto y habría que ver como estás construyendo dicho objeto. Muéstranos un ejemplo de construcción de un objeto TTreeMap.

// Saludos
Responder Con Cita
  #3  
Antiguo 10-11-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Sería interesante que indiques también el mensaje de error que te da, y si es dentro del código de tu constructor, antes o después (lo podes comprobar con el debugger).

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 10-11-2003
seduerey seduerey is offline
Miembro
 
Registrado: jun 2003
Posts: 60
Poder: 21
seduerey Va por buen camino
El error es el siguiente (creia haberlo puesto, vaya memoria tengo):

Project oydeuss.exe raised exception class EAccessViolation with message "......":Write of address 00000004

supongo que es xq accedo a algun nil, pero creia que deberia ser así

El código que falla es el siguiente en el insertar dentro del TTreeMap:


if self = NIL then begin
q := NIL;
q.CreateTTRee(key,Obj);
self := q;
h := true;
end


q es otro TTreeMap, y que sea NIL significa que hemos llegado a un nodo hoja del arbol. Estaba acostumbrado a hacerlo asi en Pascal... ¿que ha cambiado? ... por cierto, Obj tb es NIL.

¿No tiene que ser NIL? bueno, espero respuestas
Responder Con Cita
  #5  
Antiguo 10-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
seduerey comentó:
q.CreateTTRee(key,Obj);
Aquí esta el error!

La sintaxis para crear una nueva instancia de una clase, es Clase.Constructor, y esto devuelve la nueva instancia, es decir el objeto.

Código:
Q := TTreeMap.CreateTTRee(key,Obj);
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 10-11-2003 a las 21:40:30.
Responder Con Cita
  #6  
Antiguo 10-11-2003
seduerey seduerey is offline
Miembro
 
Registrado: jun 2003
Posts: 60
Poder: 21
seduerey Va por buen camino
Unhappy

Ya decia yo que siempre me daba error el crear un objeto.... muchas gracias!!!! el que no sabe es como el que no ve!!!!
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


La franja horaria es GMT +2. Ahora son las 03:56:37.


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