![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
![]() 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 |
#4
|
|||
|
|||
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 |
#5
|
||||
|
||||
Cita:
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);
__________________
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. |
#6
|
|||
|
|||
![]() ![]() |
![]() |
|
|
![]() |
|