Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   novato en cuanto a los objetos delphi (https://www.clubdelphi.com/foros/showthread.php?t=5113)

seduerey 09-11-2003 18:19:49

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

roman 09-11-2003 20:39:13

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

jachguate 10-11-2003 01:06:37

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.

;)

seduerey 10-11-2003 21:10:39

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

delphi.com.ar 10-11-2003 21:33:03

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!

seduerey 10-11-2003 21:38:42

:( 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