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 |
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 |
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. ;) |
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 |
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); |
:( Ya decia yo que siempre me daba error el crear un objeto.... muchas gracias!!!! el que no sabe es como el que no ve!!!!
|
La franja horaria es GMT +2. Ahora son las 09:53:06. |
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